c#中的多个OnClick事件

本文关键字:OnClick 事件 | 更新日期: 2023-09-27 18:15:40

我想问我是否有多个标签具有相同的功能Onclick,但具有不同的参数。没有30种方法我怎么能处理它们。我想用c#在windows窗体应用程序中制作A-Z过滤器。每个字符都有标签(A,B,C,D....,Z)。我也有从DB数据的TreeView。

private void labelLetter1_Click(object sender, EventArgs e)
{
    //this.labelLetter1.Text
    // get value of the label and refresh treeview
}

我想在每个字符上都这样做,但不要重复相同的代码

c#中的多个OnClick事件

订阅示例事件到其他事件。试试这样:

private void labelLetter1_Click(object sender, EventArgs e)
 {
     Label lbl = (Label) sender;
     var text = lbl.Text;
    //this.labelLetter1.Text
   // get value of the label and refresh treeview
 }

现在将此事件设置为属性窗口中的其他标签。

sender参数将是触发事件的原始对象。在你的例子中,它是一个Label。这意味着您可以将object转换为Label

此外,您可以创建一个单一的label_click方法,并让所有标签用户使用该方法。

例如:

private void label_Click(object sender, EventArgs e)
{
    String labelText = (sender as Label).Text;
    //Your process
}