我想知道如何使用函数传入控件名称(在本例中为组合框)?我有 8 个组合框,所有这些都服从相同的代码,所以不是将代码复制 8 次并更改被调用组合框名称的名称,而是可以将组合框的名称作为控件传递给函数?这是我尝试此方法之前的代码:-private void cmbDataSetA_1_TextChanged(object sender, EventArgs e) { string filenameExtension = Path.GetExtension(cmbDataSetA_1.Text); try { // Clear combo before population cmbDataSetB_1.Items.Clear(); // Make sure the data feed replacement media item matches the type of media (JPG/MOV etc) if (filenameExtension == ".jpg") { for (int i = 0; i < cmbDataSetA_1.Items.Count; i++) { string item = cmbDataSetA_1.GetItemText(cmbDataSetA_1.Items[i]); if (Path.GetExtension(item) == ".jpg") { cmbDataSetB_1.Items.Add(item); cmbDataSetB_1.Refresh(); } } } else if (filenameExtension == ".jpeg") { } if (filenameExtension == ".png") { } } catch (Exception ex) { Console.WriteLine("ERROR = " + ex); } }..但是,我收到以下错误:-CS1061“Control”不包含“GetItemText”的定义,并且找不到接受“Control”类型的第一个参数的扩展方法“GetItemText”(您是否缺少 using 指令或程序集引用?)
1 回答
紫衣仙女
TA贡献1839条经验 获得超15个赞
您已将 ComboA 定义为控件。Control 是 ComboBox 的“通用”基类,没有定义 GetItemText 方法。如果您确定要使用组合框,请将它们声明为 ComboBox:
public void PopulateCombo(ComboBox comboA, ComboBox comboB)
或者包含一些类型检查代码,例如:
if (comboA is ComboBox && comboB is ComboBox)
{
//your code
}
else
{
throw new InvalidArgumentException(); //or alternative code for other control types
}
- 1 回答
- 0 关注
- 374 浏览
添加回答
举报
0/150
提交
取消