0

MDI 親から子のモーダル ダイアログに文字列を渡すにはどうすればよいですか?

子を開くための MDI 親コード:

Form1 f1 = new Form1();
f1.MdiParent = this;
f1.Show();

モーダル ダイアログを開く Form1 コード

Form2 f2= new Form2();
f2.ShowDialog();
4

2 に答える 2

0

フォームを常にモーダル フォームとして使用する場合は、このようなパターンを使用できます。

    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 メソッドに渡すことができます。

于 2013-09-16T16:18:38.543 に答える