c# - Winforms 用户控件自定义事件

标签 c# .net winforms user-controls event-handling

有没有办法给用户控件自定义事件,并在用户控件内的事件上调用该事件。 (我不确定调用是否正确)

public partial class Sample: UserControl
{
    public Sample()
    {
        InitializeComponent();
    }


    private void TextBox_Validated(object sender, EventArgs e)
    {
        // invoke UserControl event here
    }
}

和 MainForm:

public partial class MainForm : Form
{
    private Sample sampleUserControl = new Sample();

    public MainForm()
    {
        this.InitializeComponent();
        sampleUserControl.Click += new EventHandler(this.CustomEvent_Handler);
    }
    private void CustomEvent_Handler(object sender, EventArgs e)
    {
        // do stuff
    }
}

最佳答案

除了 Steve 发布的示例之外,还有可用的语法可以简单地传递事件。它类似于创建属性:

class MyUserControl : UserControl
{
   public event EventHandler TextBoxValidated
   {
      add { textBox1.Validated += value; }
      remove { textBox1.Validated -= value; }
   }
}

关于c# - Winforms 用户控件自定义事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2188059/

相关文章:

c# - F# 与 C# 性能签名以及示例代码

c# - System.Timers.Timer 的 Elapsed 回调可以是异步的吗?

c# - Django Like 用于 C# MVC 的管理项目

.net - 我可以使用什么软件或服务以编程方式调用电话?

c# - 在 SelectionChanged 事件(列表框 : SelectionMode=Multiple), 中,第一个选择的项目总是返回而不是当前的

c# - 重构该代码... Controls.Find 方法

c# - 如何使用配置管理器

c# - 如何为 "Auth-Token"的 Web 服务添加 token 认证?

c# - 打印 RichTextBox

mysql - 使用 vb.net 窗口窗体中的复选框列表更新数据库中列的值