2012年1月24日火曜日

ShowDialogをせずに、Wi​​ndowsフォームWindowsの間で変数を渡す()

Windowsフォームアプリケーションをプログラミングしているときは、常にそのようなオプションのフォームまたはプロンプトポップアップ検索のように、2番目の形式のウィンドウから変数を取得する必要があります。

そこにガイドのほとんどは、彼らは番目の形式のウィンドウを閉じてまで何かを行うからユーザーをブロックするShowDialogの2番目のフォームを()、開くために持っていることを教えてくれます。これは、例えば、検索/置換ダイアログに非常にうまく動作しません。また、カスタム手描きのポップアップフォームには非常にうまく動作しません。

フォーム間で変数を渡す簡単な方法は、デリゲートを使用しています。あなたは番目のフォームのClosingイベントのためのEventHandlerを設定し、最初の形式でイベントを処理することができます。この2番目の形式のウィンドウが閉じている前に、変数をキャプチャすることができます。

この演習では、我々は二つの形式があることを前提とするつもりだ。

MainForm

OptionsForm

我々は、さらに我々はShow()メソッドの呼び出しでOptionsFormを開くボタンのいくつかの並べ替えをクリックしたと仮定するつもりだ。今のは魔法を見てみましょう:

.......中略.......

OptionsForm theform =新しいOptionsForm();
theform.Closing + =新しいCancelEventHandler(theform_Closing);
theform.Show();

}

プライベートボイドは(オブジェクト送信者、CancelEventArgs E)theform_Closing
{

OptionsForm theform =(OptionsForm)送信者;

/ /オプションのフォームから変数を取得してください。オプションのフォームは、それが閉じる前に、この変数を設定する必要があります、と変数はpublicとしてマークする必要があります。
文字列LocalVarが= theform.thestringvariable。

}

それはそれでおしまいです。

0 件のコメント:

コメントを投稿