我正在开发项目在widows c#.net中。在形式上,我有超过8个组合框控件。 当combobox1选择如下改变时,我会加载数据到combobox2。将方法作为参数传递给另一个方法
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox2.DataSource = DataTable;
comboBox2.DisplayMember="Name";
comboBox2.ValueMember = "ID";
}
Combobox3将被加载,当我选择combobox2像下面。
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox3.DataSource = DataTable;
comboBox3.DisplayMember = "Age";
comboBox3.ValueMember = "AgeCode";
}
就像我会加载数据到其余的组合框。
这里的问题是错误会发生,如果我没有检查comboBox1_SelectedIndexChanged
方法是否加载或不加载comboBox2。
我知道我们可以通过使用布尔变量来检查,但可怕的是我们需要保持其“真/假”状态来休息所有方法。
所以我想到在简单的方法来解决这个问题的是,我将使用Add(combobox, Methodname)
方法和Remove(combobox, method)
方法来添加和删除组合框SelectedIndexChanged
事件comboBox_SelectedIndexChanged
功能。
但我无法通过该方法作为参数。任何人都可以告诉我如何将方法作为参数传递给我的需求。
看看'Func'和'Action' – 2013-03-18 11:12:23
检查这个答案http://stackoverflow.com/a/2082650/182344 – RredCat 2013-03-18 11:13:25
你可以传递委托作为参数。但我认为这不会解决您的问题。 – 2013-03-18 11:13:47