C# 自定义事件(EventArgs)

1,自定义事件:

public class TextChangeEventArgs : EventArgs

{
    private string message;
    public TextChangeEventArgs(string message)
    {
        this.message = message;
    }
  public string Message
    {
        get{return message;}
    }
}
2,定义委托为,
public delegate void TextBoxChangedHandle(object sender,TextChangeEventArgs e);
接下去在用户控件中添加事件,
//定义事件
public event TextBoxChangedHandle UserControlValueChanged;
为了激发用户控件的新增事件,修改了一下代码,
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
    if(UserControlValueChanged != null)
        UserControlValueChanged(this,new TextChangeEventArgs(this.textBox1.Text));
           
}
3,调用事件
this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
 
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
      if(UserControlValueChanged != null)
           UserControlValueChanged(this,new TextChangeEventArgs(this.textBox1.Text));
}
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# 中,自定义事件是一个非常重要的概念,它使得我们可以在特定的情况下触发一个事件,并且在事件发生时执行特定的操作。自定义事件的基本思想是,定义一个委托类型来表示事件,然后定义一个事件来注册和触发该委托。 下面是定义自定义事件的一般步骤: 1. 定义一个委托类型 在 C# 中,委托类型是一种特殊的类型,它可以存储一个或多个方法的引用,可以用来表示事件。例如,假设我们要定义一个事件,当某个按钮被单击时触发,我们可以定义一个委托类型如下: ``` public delegate void ClickEventHandler(object sender, EventArgs e); ``` 这个委托类型表示一个方法,它有两个参数:一个是事件的发送者,另一个是事件参数。在这个委托类型中,我们使用了 C# 中内置的 EventArgs 类来表示事件参数。 2. 定义一个事件 定义一个事件需要两个步骤:首先,我们需要在类中定义一个委托类型的变量,用来存储注册到事件上的方法;其次,我们需要定义一个公共的事件,用来注册和触发该委托。 例如,假设我们要定义一个名为 Button 的类,该类有一个 Click 事件,我们可以定义如下: ``` public class Button { // 定义一个委托类型的变量 private ClickEventHandler clickHandler; // 定义一个公共的事件 public event ClickEventHandler Click { add { clickHandler += value; } remove { clickHandler -= value; } } // 触发事件的方法 protected virtual void OnClick(EventArgs e) { if (clickHandler != null) clickHandler(this, e); } // 模拟按钮被单击的方法 public void SimulateClick() { OnClick(EventArgs.Empty); } } ``` 在这个示例中,我们首先定义了一个名为 clickHandler 的委托类型的变量,用来存储注册到 Click 事件上的方法。然后,我们定义了一个公共的事件 Click,它使用了 C# 中内置的 event 关键字,并通过 add 和 remove 访问器来实现注册和注销事件的方法。接着,我们定义了一个受保护的虚拟方法 OnClick,用来触发 Click 事件,并在其中调用了 clickHandler 变量所存储的所有方法。最后,我们定义了一个模拟按钮被单击的方法 SimulateClick,用来触发 Click 事件。 3. 注册事件处理方法 要在事件发生时执行特定的操作,我们需要将一个方法注册到事件上。在 C# 中,我们可以使用 += 运算符来注册方法,使用 -= 运算符来注销方法。 例如,假设我们要在 Button 类的 Click 事件发生时弹出一个消息框,我们可以编写如下代码: ``` Button button = new Button(); button.Click += (sender, e) => MessageBox.Show("Button clicked!"); button.SimulateClick(); ``` 在这个示例中,我们首先创建了一个 Button 对象 button,并使用 += 运算符将一个匿名方法注册到 button 的 Click 事件上。在匿名方法中,我们使用了 MessageBox 类来弹出一个消息框,显示按钮被单击的信息。接着,我们调用了 button 的 SimulateClick 方法,来模拟按钮被单击的操作。当 SimulateClick 方法被调用时,会触发 Click 事件,并执行注册到该事件上的方法。 以上就是 C# 中定义自定义事件的一般步骤。通过自定义事件,我们可以很方便地实现类似于 Windows 应用程序中的事件机制,使得程序更加灵活和易于维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值