MDI 親から子のモーダル ダイアログに文字列を渡すにはどうすればよいですか?
子を開くための MDI 親コード:
Form1 f1 = new Form1();
f1.MdiParent = this;
f1.Show();
モーダル ダイアログを開く Form1 コード
Form2 f2= new Form2();
f2.ShowDialog();
MDI 親から子のモーダル ダイアログに文字列を渡すにはどうすればよいですか?
子を開くための MDI 親コード:
Form1 f1 = new Form1();
f1.MdiParent = this;
f1.Show();
モーダル ダイアログを開く Form1 コード
Form2 f2= new Form2();
f2.ShowDialog();
フォームを常にモーダル フォームとして使用する場合は、このようなパターンを使用できます。
class FormResult
{
public DialogResult dr {get; private set;}
public string LastName {get; private set;}
public string FirstName {get; private set;}
}
class MyForm : whatever
{
static public FormResult Exec(string parm1, string parm2)
{
var result = new FormResult();
var me = new MyForm();
me.parm1 = parm1;
me.parm2 = parm2;
result.dr = me.ShowDialog();
if (result.dr == DialogResult.OK)
{
result.LastName = me.LastName;
result.FirstName = me.FirstName;
}
me.Close(); // should use try/finally or using clause
return result;
}
}
... rest of MyForm
このパターンは、フォームの「プライベート」データを使用する方法を分離し、mors の戻り値を追加する場合は簡単に拡張できます。入力パラメーターが 2 つ以上ある場合は、それらをクラスにまとめて、そのクラスのインスタンスを Exec メソッドに渡すことができます。