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

时间:2015-04-10 05:26:01

标签: c# combobox controls

我知道combobox不是System.Windows.Forms.Control类的成员

我将此代码用于查找控件

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;
}

1 个答案:

答案 0 :(得分:2)

你几乎就在那里。只需将找到的控件转换为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类的成员,但它是从它派生的,这就是您当前代码编译的原因。您必须先将其转换为更多派生类型,在本例中为ComboBox,然后才能访问属于ComboBox的成员和属性。