根据控件名称,调用相应的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);
}
------解决方案--------------------你可以试试在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(); //