Windows フォーム間でのデータの受け渡し
Windows フォーム アプリケーションで複数のフォームを管理する場合、複数のフォーム間でデータを共有する必要がある状況が発生することがあります。彼ら。この記事では、メイン フォームから「設定」フォームに変数を渡し、新しいフォームでその情報を表示できるようにする問題について説明します。
デリゲートとイベント ハンドラーの使用
メイン フォームで指定したコードは、デリゲートとイベント ハンドラーを使用して設定フォームにデータを送信します。デリゲートは、特定の入力パラメータと出力パラメータを使用してメソッドのシグネチャを定義する型です。イベント ハンドラーにデリゲートを割り当てることで、イベントの発生時に呼び出されるメソッドを登録できます。
この場合、メイン フォームは、PageInfoEventArgs 型の入力パラメーターを持つデリゲート PageInfoHandler を作成します。 PageInfoEventArgs クラスには、設定フォームに渡すデータ (この場合は文字列) が含まれています。 [設定] ボタンをクリックすると、イベント ハンドラー (OnPageInfoRetrieved) が呼び出され、登録されたメソッド (この場合は PageInfoRetrieved) が呼び出されます。
設定フォームでのデータの取得
設定フォームでは、渡されたデータにアクセスできるようにするプロパティまたはメソッドを定義する必要がありますメインフォームから。推奨される解決策では、コンストラクターを使用して文字列を設定フォームに渡します。このコンストラクターは文字列をプライベート メンバー変数に保存し、パブリック getter メソッドを通じてアクセスできます。
完全なコード例
完全なコード例は次のとおりです。
MainForm.cs
public partial class MainForm : Form { public delegate void PageInfoHandler(object sender, PageInfoEventArgs e); public event PageInfoHandler PageInfoRetrieved; private void toolStripBtnSettings_Click(object sender, EventArgs e) { PageInfoEventArgs args = new PageInfoEventArgs(SomeString); OnPageInfoRetrieved(args); SettingsForm settingsForm = new SettingsForm(SomeString); settingsForm.ShowDialog(); } private void OnPageInfoRetrieved(PageInfoEventArgs args) { if (PageInfoRetrieved != null) PageInfoRetrieved(this, args); } }
SettingsForm.cs
public class SettingsForm : WinForm { private string m_Data; public SettingsForm(string data) { m_Data = data; } public string Data { get { return m_Data; } } }
以上がデリゲートとイベント ハンドラーを使用して Windows フォーム間でデータを渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。