求教!
小弟做了一个界面form1
界面里有几十个开关(很多)
我想实现点击任意一个开关 触发新窗口form2来控制此开关的开关属性
虽然可以用委托的方式实现
但是小弟水平有限,几十个开关小弟就定义了几十个委托
这样不但麻烦,运行还有延迟
有没有比较简单一点的方法呢?
比如可不可用数组的方式呢?
希望给出代码
谢谢
小弟做了一个界面form1
界面里有几十个开关(很多)
我想实现点击任意一个开关 触发新窗口form2来控制此开关的开关属性
虽然可以用委托的方式实现
但是小弟水平有限,几十个开关小弟就定义了几十个委托
这样不但麻烦,运行还有延迟
有没有比较简单一点的方法呢?
比如可不可用数组的方式呢?
希望给出代码
谢谢
问题是"然后判断sender是哪一个就行了"该怎么写?
switch(btn.Text)
{
}
{
button1.Click += new EventHandler(button_Click);//都使用同一个事件处理
button2.Click += new EventHandler(button_Click);//都使用同一个事件处理
button3.Click += new EventHandler(button_Click);//都使用同一个事件处理
//......等等
}private void button_Click(object sender , EventArgs e)
{
Button btn = sender as Button;
//根据btn.Name来判断到底是哪一个Button
}
而且委托应该怎么该?
我写的是:
Form1:
public bool p;
private void value01_MouseClick(object sender, MouseEventArgs e)
{
开关控制 f1 = new 开关控制();
f1.refreshFrom1 += new 开关控制.FormRefreshEvent(f1_refreshFrom1);//委托事件1
f1.i = 0; //表明是value01
f1.ShowDialog();
}
void f1_refreshFrom1(bool p)
{
this.value01.state = p; //p表示开关状态;
}
Form2中:
public int i;
public delegate void FormRefreshEvent(bool p);
public event FormRefreshEvent refreshFrom1;
private void btnYes_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1();
if (this.rbtnOpen.Checked == true)
{ bool p = true;
if (i == 0)//判断是哪一个value;
{
refreshFrom1(p); //调用数据 复值给p;
}
else if (i == 1)
{
refreshFrom2(p);
}
........
}
}