ホームページ >バックエンド開発 >C++ >メイン フォームからユーザー コントロール イベントを処理するにはどうすればよいですか?

メイン フォームからユーザー コントロール イベントを処理するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-04 11:07:34303ブラウズ

How Can I Handle User Control Events from My Main Form?

メイン フォームでの UserControl イベントの処理

ユーザー インターフェイスの設計では、特定の機能用にカスタム ユーザー コントロールを作成するのが一般的です。ただし、メイン フォーム レベルでユーザー コントロール内からイベントを処理することが必要になる場合があります。

これを実現するには、コントロール内のイベントが発生したときに発生できるユーザー コントロールのイベント ハンドラーを作成します。 。これにより、イベントがチェーンをバブルアップして、フォーム レベルで処理できるようになります。

例:

数値が上下にあるカスタム ユーザー コントロールを考えてみましょう。 (NUD) コントロール。 NUD の値が変更されたときに、メイン フォームで表示ウィンドウを更新する必要があります。

ユーザー コントロール:

[Browsable(true)] 
[Category("Action")]
[Description("Invoked when user clicks button")]
public event EventHandler ButtonClick;

protected void Button1_Click(object sender, EventArgs e)
{
    //bubble the event up to the parent
    this.ButtonClick?.Invoke(this, e);
}

Mainフォーム:

UserControl1.ButtonClick += new EventHandler(UserControl_ButtonClick);

protected void UserControl_ButtonClick(object sender, EventArgs e)
{
    //handle the event
}

メモ:

  • Visual Studio の新しいバージョンでは、バブリング イベントのより簡潔な構文が提供されています: ButtonClick?.Invoke( this、e);
  • Browseable、Category、および description 属性の強化ユーザー インターフェイス。デザイナーでイベントにアクセスできるようにし、説明を提供します。

以上がメイン フォームからユーザー コントロール イベントを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。