如何从字符串中找到组合框?

How can find a combobox from string?

据我所知组合框不是 System.Windows.Forms.Control class

的成员

我用这段代码来查找控件

Control ctrFindControl = this.Controls.Find("FindSomething", false)[0];

但是如何从字符串中找到组合框?

for (int i = 0; i <= cmbAccount1.Items.Count; i++)
{
   string txtCategory = "cmbCategory" + i;

   Control cmbBoxCategory;
   cmbBoxCategory = this.Controls.Find(txtCategory , false)[0];

   cmbBoxAccount.Items.Add("a");
   cmbBoxAccount.Items.Add("b");
   cmbBoxAccount.Items.Add("c");
   cmbBoxAccount.SelectedIndex = 0;
}

你快到了。只需将找到的控件转换为 ComboBox:

ComboBox cmbBoxCategory = (ComboBox)this.Controls.Find(txtCategory, false)[0];

cmbBoxCategory.Items.Add("a");
cmbBoxCategory.Items.Add("b");
cmbBoxCategory.Items.Add("c");
cmbBoxCategory.SelectedIndex = 0;

ComboBox 不是 Control class 的成员,但它派生自它,这就是您当前代码编译的原因。在访问属于 ComboBox.

的那些成员和属性之前,您必须将其转换为更派生的类型,在本例中为 ComboBox