自定义控件WinForm的C#自定义事件

时间:2012-08-09 08:49:55

标签: c#

我已经搜索了这个,有几个答案,但我无法弄清楚如何去做。

我有一个带文本框和列表视图的自定义控件。 当用户开始在文本框上键入时,列表视图将填充所有可能匹配的文本(这是用户的搜索框)。 用户正在键入客户名称以查找客户。

我想要做的是,当用户输入客户并选择客户时,我需要将客户名称从自定义控件的文本框传递到我的主项目。

为此,我想,我需要一个自定义事件,当选择一个客户时,它会引发一个事件以让主应用程序知道。

我怎么能这样做,提前谢谢。

1 个答案:

答案 0 :(得分:1)

你需要做三件事。

1.在自定义控件中定义事件(目前,不添加任何特殊事件参数)。

public event EventHandler CustomerSelected { get; set; }
private void OnCustomerSelected() {
    var customerSelected = CustomerSelected;
    if (customerSelected != null) {
        customerSelected(this, EventArgs.Empty);
    }
}

2.必要时取消活动。您可以通过在选择客户时调用OnCustomerSelected方法在自定义控件中执行此操作。

3.处理主要表格中的活动。你可以通过这样的方式做到这一点(我使用了lambda,你也可以定义一个事件处理程序方法,无论你喜欢什么)。

this.customerControl1.CustomerSelected += (s,e) => {
    // This runs when a customer is selected.
};