根据控件名称,调用相应的Click事件
1. private void lblBtn1_Click(object sender, EventArgs e)
{
//程序响应
}
2. private void imgBtn1_Click(object sender, EventArgs e)
{
string sName = ((PictureBox)sender).Name;
sName = sName.Replace("img", "lbl");
***问题是,如何实现下面的功能?不要直接用下面语句,因为有很多类似的名称要实现此功能,不想一一拼写。比如lblBtn1对应imgBtn1,lblBtn2对应imgBtn2.......n对n,等等
//lblBtn1_Click(sender, e);
} 根据控件名称,调用相应的click事件
[解决办法]
你可以试试在controls中通过name来find到,然后对这个找到的控件click(), 具体能不能实现我没做过,但我猜测应该可以
[解决办法]
***这里该加入什么语句就能实现和 lblBtn1_Click(sender, e); 等效的功能呢?
那你就把这个事件注册到click里面就行了。
[解决办法]
class MyLabel:Label
{
public void InvokeClick()
{
OnClick(null,null);
}
}
//把Label换成MyLabel
2. private void imgBtn1_Click(object sender, EventArgs e)
{
string sName = ((PictureBox)sender).Name;
sName = sName.Replace("img", "lbl");
foreach (Control label1 in (panelMain.Controls))
{
if (label1 is MyLabel)
{
if (label1.Name == sName)
{
label1.InvokeClick(); //
break;
}
}
}
***问题是,如何实现下面的功能?不要直接用下面语句,因为有很多类似的名称要实现此功能,不想一一拼写。比如lblBtn1对应imgBtn1,lblBtn2对应imgBtn2.......n对n,等等
//lblBtn1_Click(sender, e);
}
[解决办法]
refer :
string buttonName = "button";
for (int i = 1; i < 5; i++)//这里拖了4个button
{
string buttontext = buttonName + i;
Button button = this.Controls.Find(buttontext, false)[0] as Button;
button.Click += (s, ea) =>
{
MessageBox.Show(buttontext);
};
}
private bt1_Click(object sender,EventArgs e)
{
call(abc,"123");
}
private void main()
{
call(abc,"123"); //模拟点击bt1的处理
}
{
ExeNew(sender, e);
}
break;
case "tsb_Update":
if (ExeUpdate != null)
{
ExeUpdate(sender, e);
}
break;
case "tsb_Delete":
if (ExeDelete != null)
{
ExeDelete(sender, e);
}
break;
case "tsb_Save":
if (ExeSave != null)
{
ExeSave(sender, e);
}
break;
case "tsb_Esc":
if (ExeEsc != null)
{
ExeEsc(sender, e);
}
break;
case "tsb_Find":
if (ExeFind != null)
{
ExeFind(sender, e);
}
break;
default:
break;
}
}
[解决办法]
m.Invoke(o, p);
}
}
小改了下,增加了一个容器的参数,看你之前的代码有这一段: foreach (Control label1 in (panelMain.Controls))
就是说你的label都放在panelMain这个容器里的。
调用的时候就直接CallOnClick(panelMain,"label1");如果控件是放在form里的,那么就CallOnClick(this,"label1");这么调用。