Windows フォームのフォーム間での変数の受け渡し
Windows フォーム アプリケーションでは、デリゲートとイベントを使用してフォーム間でのデータの受け渡しを実現できます。この問題は、1 つのフォームである「子」フォームが「親」フォームから変数にアクセスする必要がある場合に発生します。
これを解決するには、デリゲートを利用して親フォームから子フォームにデータを送信することを検討してください。親フォームで、デリゲートとそのイベント ハンドラーを定義します。子フォームを開くボタンがクリックされたら、変数値を運ぶイベント引数オブジェクトを作成し、イベントを発生させます。
子フォームでは、コンストラクターでイベントをサブスクライブします。イベントが発生すると、イベント引数オブジェクトから変数値を取得します。子フォームのコントロールまたはプロパティを変更して、変数テキストを動的に表示します。
C# のコード例を次に示します。
// Parent Form 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(); settingsForm.ShowDialog(); } private void OnPageInfoRetrieved(PageInfoEventArgs args) { if (PageInfoRetrieved != null) PageInfoRetrieved(this, args); } } // Child Form public partial class SettingsForm : Form { private string m_Data; // Variable to store the passed value public SettingsForm() { InitializeComponent(); Subscribe to PageInfoRetrieved event } private void OnPageInfoRetrieved(object sender, PageInfoEventArgs e) { m_Data = e.Value; // Update controls or properties in this form } public string Data => m_Data; // Expose the variable as a property }
以上がWindows フォーム アプリケーションのフォーム間で変数を渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。