0

これを検索しましたが、いくつかの答えがありますが、その方法がわかりませんでした。

テキストボックスとリストビューを備えたカスタム コントロールがあります。ユーザーがテキストボックスに入力を開始すると、リストビューには、入力されたテキストに一致する可能性のあるすべてが表示されます (ユーザーの検索ボックスです)。ユーザーは、顧客を検索するために顧客名を入力しています。

私がやりたいことは、ユーザーが顧客を入力して顧客が選択されたときに、顧客名をカスタム コントロールのテキスト ボックスからメイン プロジェクトに渡す必要があることです。

これを行うには、カスタム イベントが必要だと思います。顧客が選択されると、イベントが発生してメイン アプリケーションに通知されます。

どうすればこれを行うことができますか、事前に感謝します。

4

1 に答える 1

1

3 つのことを行う必要があります。

1. カスタム コントロールでイベントを定義します (現時点では、特別なイベント引数は追加されていません)。

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

2.必要に応じてイベントを発生させます。カスタム コントロールでこれを行うには、顧客が選択されたときに OnCustomerSelected メソッドを呼び出します。

3. メイン フォームでイベントを処理します。これは、次のような方法で実行できます (私はラムダを使用しました。好きなようにイベントハンドラー メソッドを定義することもできます)。

this.customerControl1.CustomerSelected += (s,e) => {
    // This runs when a customer is selected.
};
于 2012-08-09T08:58:00.993 に答える