ホームページ » の仕方 » Windowsフォーム間で変数を渡すShowDialog()を使わないでWindows

    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;

    それだけです。.