记录一些 WinForm 小功能的最佳代码实现,既是分享也是备忘。

如果你有更好的方案,欢迎留言讨论。

ComboBox 绑定带名称的简单数据

一般通过将数据填充到 Dictionary 再绑定。

Dictionary

代码段参考自 SOF

  1. private void PopulateComboBox()
  2. {
  3. var dict = new Dictionary<int, string>();
  4. dict.Add("Toronto", 2324);
  5. dict.Add("Vancouver", 64547);
  6. dict.Add("Foobar", 42329);
  7. comboBox1.DisplayMember = "Key";
  8. comboBox1.ValueMember = "Value";
  9. comboBox1.DataSource = new BindingSource(dict, null);
  10. }

匿名类

通过匿名类效果是差不多的:

  1. var profiles = new[]
  2. {
  3. new {Name = "采集回波", Value = 0},
  4. new {Name = "计算回波", Value = 1},
  5. new {Name = "回波信号", Value = 2},
  6. new {Name = "逻辑曲线", Value = 3}
  7. };
  8. CboProfiles.DataSource = profiles;
  9. CboProfiles.DisplayMember = "Name";
  10. CboProfiles.ValueMember = "Value";

通过 OfType 筛选控件

WinForm 开发时经常有通过类型筛选控件的需求。

例如筛选出当前控件的子控件里面的所有 TextBox:

  1. IEnumerable<TextBox> textboxs = parentControl.Controls.OfType<TextBox>();