C# 如何绑定按钮和标签

C# 如何绑定按钮和标签,c#,winforms,button,label,C#,Winforms,Button,Label,我扩展了按钮控件,使其也具有LabelName。当我按下按钮时,我需要在标签上写下按钮的名称。 我的第一个想法是使用事件——简单易行。 问题是:有没有更优雅的方式?(我被要求绑定按钮和标签).我认为最好的方法是使用动作监听器,而使用动作监听器的最好方法是将其构建到扩展按钮控件的类中,这样用户就不必自己做了。看起来是这样的 class Button2 : Button { public string LabelName = ""; public Button2() {

我扩展了按钮控件,使其也具有LabelName。当我按下按钮时,我需要在标签上写下按钮的名称。 我的第一个想法是使用事件——简单易行。
问题是:有没有更优雅的方式?(我被要求绑定按钮和标签).

我认为最好的方法是使用动作监听器,而使用动作监听器的最好方法是将其构建到扩展按钮控件的类中,这样用户就不必自己做了。看起来是这样的

class Button2 : Button
{
    public string LabelName = "";
    public Button2()
    {
        this.Click += this.SetLabelName;
    }
    private void SetLabelName(object sender, EventArgs e)
    {
        this.LabelName = "Something?";
    }
//You could also do this instead.
    protected override void OnClick(EventArgs e)
        {
            base.OnClick(e);
        }
    }

如果要更改外部标签控件的
Text
属性,只需在按钮中创建一个属性来保存对标签的引用。您可以像设置任何其他属性一样,通过IDE进行设置:

下面是Button类:

public class MyButton : Button
{

    private Label _Label = null;

    public Label Label
    {
        get { return _Label; }
        set { _Label = value; }
    }

    protected override void OnClick(EventArgs e)
    {
        base.OnClick(e);
        if (this.Label != null)
        {
            this.Label.Text = this.Name;
        }
    }

}
这是我单击按钮后的标签:


如果触发标签写入的操作是按钮单击,那么您没有比按钮单击事件更好的选择。如果您显示实际的代码,我们可能会找到编写代码的“更优雅的方式”。如果您扩展了
按钮
,并希望在单击时对其进行处理,则您无需订阅自己的事件,只需覆盖
OnClick
方法。您的意思是要设置外部文件的.Text属性吗关联的标签控件?…是否要在按钮中存储对该标签的引用?这似乎是一个学术问题。好的,按钮的OnClick事件似乎是一种方式,我将使用它@sudheeshix:这不是学术问题,而是我要求做的事情。这不是我的意思,因为我只需要为按钮“绑定”文本,而不是所有标签。这是我认为我应该做的。。。非常感谢。