0

我已经搜索过这个,有几个答案,但我不知道该怎么做。

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

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

To do this , I think, I need a custom event, when a customer is selected , it raises an event to let the main application know.

我该怎么做,提前谢谢。

4

1 回答 1

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.
};
于 2012-08-09T08:58:00.993 回答