Windowsフォーム間で変数を渡すShowDialog()を使わないでWindows
Windowsフォームアプリケーションをプログラミングしているときは、常にオプションフォームやポップアップ検索プロンプトなど、2番目のフォームウィンドウから変数を取得する必要があります。.
そこにあるほとんどのガイドは、ShowDialog()を使って2番目のフォームを開く必要があることを教えてくれます。たとえば、これは検索/置換ダイアログではあまりうまくいきません。カスタム描画ポップアップフォームにはあまりうまくいきません。.
フォーム間で変数を渡すための簡単な方法は、デリゲートを使うことです。 2番目の形式のClosingイベントにイベントハンドラを設定し、最初の形式でイベントを処理することができます。これにより、2番目のフォームウィンドウが閉じる前に変数をキャプチャすることができます。.
この演習では、2つの形式があると仮定します。
メインフォーム
OptionsForm
Show()メソッド呼び出しでOptionsFormを開くある種のボタンをクリックしたとさらに仮定します。それでは、魔法を見てみましょう。
…。スニップ… .
OptionsForm theform = new OptionsForm();
theform.Closing + = new CancelEventHandler(theform_Closing);
theform.Show();プライベートvoid theform_Closing(オブジェクトセンダ、CancelEventArgs e)
OptionsForm theform =(OptionsForm)センダ。
//オプションフォームから変数を取得します。 optionsフォームはこの変数を閉じる前に設定し、変数はpublicとしてマークされるべきです。.
ストリングlocalvar = theform.thestringvariable;
それだけです。.