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

Add Item to ComboBox with a neat way

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

下面是我的示例代码,一点都不整洁,而且违反了DRY(don't repeat yourself)原则。我是一个寻求简洁代码的新手。请帮帮我。

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

如您所见,如果只需要将 5 到 10 个项目添加到组合框,我就可以这样做。如果有 50 个呢?我想 select 某些组合框向其添加项目。

我想找到一个更好的方法来做到这一点,不要重复上面的例程太多时间。请帮我写一个更整洁的代码。谢谢!!!

更好用DataGridView

DataGridView其实还有一个DataGridViewComboBoxColumn

参考 Ref1 Ref2

假设您的组合框在 container1 中(例如它可以是一个 groupBox),您可以这样做:

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

这是您可以尝试的方法:

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

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

如果表单或网页上有 50 个组合框,那么首先您需要从用户的角度重新设计 UI - 它可能涉及太多信息,一个人无法理解随时接受。

如果它是一系列控件,那么您最好将所有组合框添加到一个面板,然后对其进行迭代。

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");