c#修改控件自定义事件

本文关键字:事件 自定义 控件 修改 | 更新日期: 2023-09-27 18:11:37

假设我有一个修改过的文本框控件

public class resButton : TextBox
{
    [Browsable(true)]

    [Description("state of TextBox"), Category("Data")]
    public string textBoxState
    {
        get { return this.AccessibleDescription; }
        set {
            this.AccessibleDescription = value;
            }
    }
}

我已经添加了一个自定义属性,它是基于该控件的AccessibleDescription。

如何添加自定义事件到该控件?我想做一个自定义事件,当"textBoxState"被改变时触发。

c#修改控件自定义事件

public class resButton : TextBox
{
    [Browsable(true)]

    [Description("state of TextBox"), Category("Data")]
    public string textBoxState
    {
        get { return this.AccessibleDescription; }
        set
        {
            this.AccessibleDescription = value;
            if (yourEvent != null)
                yourEvent(this, new EventArgs());
        }
    }
    public event EventHandler yourEvent;
}
public class resButtonUsage
{
    resButton resbuttonInstance;
    public resButtonUsage()
    {
        resbuttonInstance = new resButton();
        resbuttonInstance.yourEvent += resbuttonInstance_yourEvent;
    }
    void resbuttonInstance_yourEvent(object sender, EventArgs e)
    {
        // Your implementation
    }
}

你必须像这个例子一样用现有的委托(EventHandler)或你的自定义委托声明事件。在属性的setter中声明并调用它之后,您可以通过实例化并声明此事件在类的外部使用。