如何在C#中执行标签单击?
我有一个作为按钮的标签。我希望当我按下按钮时,单击此标签的事件以采取行动。比如说如何在C#中执行标签单击?,c#,click,label,C#,Click,Label,我有一个作为按钮的标签。我希望当我按下按钮时,单击此标签的事件以采取行动。比如说 private void Label1_Click(object sender, EventArgs e) { MessageBox.Show("I pressed this label and showed me this messagebox"); } 现在我想当我按下这个按钮时,label1 click事件将被执行 private void button1_Click(object sender,
private void Label1_Click(object sender, EventArgs e)
{
MessageBox.Show("I pressed this label and showed me this messagebox");
}
现在我想当我按下这个按钮时,label1 click事件将被执行
private void button1_Click(object sender, EventArgs e)
{
// I want when I press this button something like this happens
Label1.PerformClick();
}
这不容易吗?
你为什么要这么做
private void button1_Click(object sender, EventArgs e)
{
Label1_Click(sender, e);
}
现在,如果您想显示一条消息,其中的控件被单击,请执行以下操作
private void label1_Click(object sender, EventArgs e)
{
Control control = (Control)sender;
var name = control.Name;
MessageBox.Show(string.Format("I pressed this {0} and showed me this messagebox",name));
}
有两种方法可以做到这一点
第一名:
private void button1_Click(object sender, EventArgs e)
{
Label1_Click(sender, e); // Just call the Label's click handler
}
// Bind the Label1_Click handler to the button1 Click event, as they both use the same delegate
button1.Click += new EventHandler(Label1_Click);
秒:
private void button1_Click(object sender, EventArgs e)
{
Label1_Click(sender, e); // Just call the Label's click handler
}
// Bind the Label1_Click handler to the button1 Click event, as they both use the same delegate
button1.Click += new EventHandler(Label1_Click);
对于第二种方法,请注意,在C中,委托是多播的,因此单击按钮时,
button1\u-Click
处理程序和Label1\u-Click
处理程序都将按绑定顺序被调用。我认为只需将标签单击功能包含在按钮单击中就更容易了。甚至可以用他们自己的方法将每一部分分开,并通过点击按钮调用它们。下面是如何调用另一个单击事件
private void button1_Click(object sender, EventArgs e)
{
label1_Click(sender, e);
}
您可以只使用
按钮
。现在有一个棘手的问题要问您Muhand Jumah
是否希望显示一条消息,说明您在按钮时单击了按钮,或者您单击了标签,尽管两者调用了相同的方法。。?如果是这样的话,也可以通过在发送器上执行开关{}case{}
来实现,那么这样做并不容易,因为如果我有这么多代码呢?比如说100行?如果我只是照你说的做,那么我会无缘无故地多写100行。因此,如果我这样做,我将只有一个额外的行。你明白我的意思吗?用你所有的Label1\u点击代码创建一个函数,该函数将从label&按钮调用。我现在明白你的意思了。这也是一个好办法。但我会使用这个“label1_Click(sender,e);”因为它工作得非常好!但是谢谢你的跟进。