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

ユーザー コントロールからその親フォームにイベントを渡すにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-05 20:35:39
オリジナル
561 人が閲覧しました

How Can I Pass Events from a User Control to Its Parent Form?

ユーザー コントロール階層へのイベントの受け渡し

カスタム ユーザー コントロールでは、コントロール内で発生したイベントをメイン コントロールにアクセスできるようにすることが望ましいことがよくあります。形状。これは、数値アップダウン コントロールでの値の変更など、サブコントロールから発生するイベントを処理しようとすると顕著になります。

イベント ハンドラーの作成

これに対処するにはチャレンジでは、目的のイベントが発生したときにトリガーされるイベント ハンドラーをユーザー コントロール内に作成します。このイベント ハンドラーは、イベントをフォームに「バブルアップ」して、イベントを処理できるようにする必要があります。

サンプル コード

「Button1」という名前のボタンを持つユーザー コントロールを考えてみましょう。 ":

ユーザー コントロール:

[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
    if (this.ButtonClick!= null)
        this.ButtonClick(this, e);               
}
ログイン後にコピー

メインフォーム:

UserControl1.ButtonClick += new EventHandler(UserControl_ButtonClick);

protected void UserControl_ButtonClick(object sender, EventArgs e)
{
    //handle the event 
}
ログイン後にコピー

Notes

  • イベントの可視性: Browsable 属性は、Visual Studio デザイナーの「イベント」でイベントを公開します。 view.
  • イベントカテゴリ: カテゴリ属性は、「アクション」などのイベントのカテゴリを指定します。
  • イベントの説明: 説明属性は、イベントの簡単な説明を提供します。
  • イベント処理の省略: 上記の属性を省略することは可能ですが、デザイナーの可用性が向上します。
  • 構文の改善: 新しい Visual Studio バージョンでは、より短い構文をサポートしています: ButtonClick?.Invoke(this, e); if (this.ButtonClick!= null) this.ButtonClick(this, e);.
の代わりに

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート