デリゲートとイベントを使用した Windows フォーム フォーム間での変数の受け渡し
このシナリオでは、メイン フォームと "設定" 子フォームがあります。フォームの場合、変数を子フォームに渡す一般的なアプローチは、デリゲートとevents.
ステップ 1: デリゲートとイベントを初期化する
メイン フォームで、データ転送を処理するためのデリゲートとイベントを作成します:
public partial class MainForm : Form { /// <summary> /// Delegate to send data between forms /// </summary> public delegate void PageInfoHandler(object sender, PageInfoEventArgs e); /// <summary> /// Event of the delegate /// </summary> public event PageInfoHandler PageInfoRetrieved; }
ステップ 2: イベントで変数を渡すハンドラー
メイン フォームの [設定] ボタンをクリックすると、渡したい変数を使用してイベント引数インスタンスを作成し、イベントを発生させます:
private void toolStripBtnSettings_Click(object sender, EventArgs e) { PageInfoEventArgs args = new PageInfoEventArgs(SomeString); this.OnPageInfoRetrieved(args); SettingsForm settingsForm = new SettingsForm(); settingsForm.ShowDialog(); }
ステップ 3: 子フォームで変数を取得する
「設定」フォームで、対応するイベント ハンドラーをオーバーライドしてイベントを処理します:
public partial class SettingsForm : Form { protected override void OnShown(EventArgs e) { base.OnShown(e); // Retrieve the event arguments PageInfoEventArgs args = this.Tag as PageInfoEventArgs; if (args != null) { // Access the passed variable string receivedText = args.PageInfo; } } }
コンストラクターを使用して変数を渡す
または、変数をコンストラクターに直接渡すこともできます。子フォーム:
public partial class SettingsForm : Form { private string receivedText; public SettingsForm(string text) { this.receivedText = text; } }
この場合、子フォーム インスタンスを作成します。引数として変数を使用します:
SettingsForm settingsForm = new SettingsForm(SomeString);
以上がデリゲートとイベントまたはコンストラクターを使用して Windows フォーム間で変数を渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。