首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法格式化ToolStripComboBox控件中的项

无法格式化ToolStripComboBox控件中的项
EN

Stack Overflow用户
提问于 2022-01-07 16:58:53
回答 1查看 43关注 0票数 0

有人知道如何在ToolStripComboBox中格式化项吗?

此控件没有FormatString属性,但它有一个ComboBox属性,该属性提供对底层ComboBox控件的完全访问。

但是设置FormatString绝对没有效果。

代码语言:javascript
复制
tsComboBox.ComboBox.FormatString = "MMMM, yyyy";

我无法控制项目的格式设置。有人知道怎么处理这件事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-07 17:28:40

您可以执行典型的“绑定两个属性,将一个支柱设置为格式化的显示项,另一个设置为值”路由:

代码语言:javascript
复制
var dt = new DataTable();
dt.Columns.Add("Disp");
dt.Columns.Add("Val", typeof(int));
dt.Rows.Add("Hello", 1);
dt.Rows.Add("Goodbye", 2);


toolStripComboBox1.ComboBox.DisplayMember = "Disp";
toolStripComboBox1.ComboBox.ValueMember = "Val";
toolStripComboBox1.ComboBox.DataSource = dt;

然后用SelectedValue拉出它:

代码语言:javascript
复制
MessageBox.Show($"value is {toolStripComboBox1.ComboBox.SelectedValue} an {toolStripComboBox1.ComboBox.SelectedValue.GetType()}"); 

不必是数据表;DataSource可以是List<KeyValuePair>List<YourClass>

如果您正在寻找更小的内容,则可以提供覆盖ToString的内容:

代码语言:javascript
复制
    toolStripComboBox1.ComboBox.DataSource = 
            Enumerable.Range(1, 12)
            .Select(i => new MyX { X = DateTime.Now.AddDays(i * 30) })
            .ToList();




    class MyX
    {
        public DateTime X { get; set; }
        public override string ToString() 
            => X.ToString("MMMM, yyyy"); 
    }

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70624681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档