如何在C#中执行标签单击
本文关键字:执行 标签 单击 | 更新日期: 2023-09-27 18:25:56
我有一个标签可以用作按钮。我希望当我按下一个按钮时,点击事件到此标签以采取行动。例如
private void Label1_Click(object sender, EventArgs e)
{
MessageBox.Show("I pressed this label and showed me this messagebox");
}
现在我想当我按下这个按钮时,标签点击事件将被执行
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);
对于第二种方法,请注意,在C#中,委托是多播,因此button1_Click
处理程序和Label1_Click
处理程序都将在单击按钮时按绑定顺序调用。
private void button1_Click(object sender, EventArgs e)
{
//What the label click do:
MessageBox.Show("I pressed this label and showed me this messagebox");
}
这不是更容易吗?你为什么要这么做?
我认为在按钮点击中只包含标签点击功能会更容易。甚至可以用自己的方法将每个片段分开,然后点击按钮调用它们。以下是如何调用另一个单击事件。
private void button1_Click(object sender, EventArgs e)
{
label1_Click(sender, e);
}
public class MyLabel:Label
{
public void PerformClick()
{
OnClick(new EventArgs());//InvokeOnClick(this,new EventArgs());
}
}