以简洁的方式将项添加到ComboBox

时间:2015-02-09 07:25:37

标签: c# vb.net winforms combobox

触发事件后,我想在WinForm的ComboBox中添加更多项目。

以下是我的示例代码,它根本不整齐,我也违反了DRY(不要重复自己)原则。我是一个新手,寻求一个整洁的代码。请帮帮我。

Combobox1.Items.Add("aaa")
Combobox2.Items.Add("aaa")
....
Combobox50.Items.Add("aaa")

如您所见,如果只需要将5到10个项目添加到Combobox中,我就可以执行此操作。如果有50个怎么办?我想选择某些组合框来添加项目。

我想找到一个更好的方法来做这件事,不要重复上述例程太多时间。请帮我一个更简洁的代码。感谢!!!

4 个答案:

答案 0 :(得分:0)

最好使用DataGridView

DataGridView实际上有DataGridViewComboBoxColumn

<强>参考 Ref1 Ref2

答案 1 :(得分:0)

假设您的组合框位于container1(例如,它可以是一个groupBox),您可以执行以下操作:

foreach(ComboBox cbx in container1)
{
   cbx.Items.Add("aaa");
}

答案 2 :(得分:0)

这是你可以尝试的:

foreach(ComboBox cb in controlpanel1)
{
  foreach(items a in ListItems)
  {
     cb.Items.Add(a);
  }
}  

就是这样。希望这会对你有所帮助

答案 3 :(得分:0)

如果您在表单或网页上有50个组合框,那么首先您需要从用户的角度来看重新设计您的用户界面 - 它可能涉及太多信息供一个人接受在任何时候。

如果选择了一些控件,那么最好将所有组合框添加到面板中,然后对其进行迭代。

foreach(var cb in this.panelName.Controls.OfType<ComboBox>())
     cb.Items.Add("aaa");

如果它的所有组合框都可以使用this.Controls,但是这不会检查子控制(即在面板内)。为此,您可以使用an answer given by Jon Skeet

中的以下内容
foreach(var cb in this.GetAll<ComboBox>())
     cb.Items.Add("aaa");