C#修改控件自定义Event
C# Modified control custom Event
假设我有一个修改过的文本框控件
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" 改变时触发。
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 中声明并调用它后,您可以通过实例化和声明此事件在 class 之外使用。
假设我有一个修改过的文本框控件
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" 改变时触发。
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 中声明并调用它后,您可以通过实例化和声明此事件在 class 之外使用。