有人知道如何在ToolStripComboBox中格式化项吗?
此控件没有FormatString属性,但它有一个ComboBox属性,该属性提供对底层ComboBox控件的完全访问。
但是设置FormatString绝对没有效果。
tsComboBox.ComboBox.FormatString = "MMMM, yyyy";我无法控制项目的格式设置。有人知道怎么处理这件事吗?
发布于 2022-01-07 17:28:40
您可以执行典型的“绑定两个属性,将一个支柱设置为格式化的显示项,另一个设置为值”路由:
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拉出它:
MessageBox.Show($"value is {toolStripComboBox1.ComboBox.SelectedValue} an {toolStripComboBox1.ComboBox.SelectedValue.GetType()}"); 不必是数据表;DataSource可以是List<KeyValuePair>、List<YourClass>等
如果您正在寻找更小的内容,则可以提供覆盖ToString的内容:
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");
}

https://stackoverflow.com/questions/70624681
复制相似问题