我有一个标签作为按钮。我希望当我按下按钮时,点击事件到此标签即可采取行动。例如
private void Label1_Click(object sender, EventArgs e)
{
MessageBox.Show("I pressed this label and showed me this messagebox");
}
现在我想要按下此按钮,标签1点击事件
private void button1_Click(object sender, EventArgs e)
{
// I want when I press this button something like this happens
Label1.PerformClick();
}
答案 0 :(得分:5)
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));
}
答案 1 :(得分:2)
两种方法。
<强>首先强>
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
处理程序都将单击按钮时按照它们绑定的顺序调用。
答案 2 :(得分:0)
private void button1_Click(object sender, EventArgs e)
{
//What the label click do:
MessageBox.Show("I pressed this label and showed me this messagebox");
}
这不容易吗? 你为什么要这样做?
答案 3 :(得分:0)
我认为只需点击按钮即可轻松添加标签点击功能。也许甚至可以用自己的方法分离每个部分,并通过按钮点击来调用它们。您可以通过以下方式拨打其他点击事件。
private void button1_Click(object sender, EventArgs e)
{
label1_Click(sender, e);
}
答案 4 :(得分:0)
public class MyLabel:Label
{
public void PerformClick()
{
OnClick(new EventArgs());//InvokeOnClick(this,new EventArgs());
}
}