0

非常に基本的な質問があります。シナリオ: 2 つのフォーム Form1、Form2 - ユーザーから 3 つの入力を受け取るダイアログ ボックス Form1 には、ユーザーがいくつかのセルを選択できるグリッドがあります。ユーザーが選択すると、rowindex と colindex が変数 c1,c1,r1,r2 に格納されます。

フォーム1:

private InsertRowsMethod(...)
{
float dv ;
     GridRangeInfoList list;
       Boolean b = theGrid.Selections.GetSelectedRanges(out list, true);
       if (list.Count > 0)
       {

          r1= list.ActiveRange.Top;  
          c1 = list.ActiveRange.Left;
          c2 = list.ActiveRange.Right;
       }
     DateTime dt;
    frmDialog dialog = new frmDialog();

    dialog.Show();

     int dialognrows = Int32.Parse(dialog.textBox1.Text);
    float dialogdv = float.Parse(dialog.textBox2.Text);
   // var dttext = (DateTime.Parse(textBox3.Text)).Ticks;

    TimeSpan dialogdt = TimeSpan.Parse(dialog.textBox3.Text);


    for (int nc = insertc1; nc <= insertc2; nc++)
    {
        insertData(nc, insertr1, dialognrows, dialogdv, dialogdt, null);

    }


}

Form2 の場合: 3 つのパラメーターが必要です。nrows,time,value 次に、これら 3 つの変数を Form2-Dialog から Form1 に渡す必要があります。ブルートフォースの方法を試しました(変更したいので、後で説明します)

In form2: I created method

     private void button1_Click(object sender, EventArgs e)
            {
                int nrows = Int32.Parse(textBox1.Text);
                float dv = float.Parse(textBox2.Text);
               // var dttext = (DateTime.Parse(textBox3.Text)).Ticks;

                TimeSpan dt = TimeSpan.Parse(textBox3.Text);
                this.Hide();



}

うまくいったので、nrows、dv、dt(ユーザー入力) の 3 つのパラメーターをダイアログから form1-main フォームに渡すことができました。

質問: Form1 のプログラムを待機させ、ダイアログを表示し、ユーザー入力を取得して戻ってきて、この部分を続行するようにします。

     for (int nc = insertc1; nc <= insertc2; nc++)
                    {
                    insertData(nc, insertr1, dialognrows, dialogdv, dialogdt, null);

                    }}

ダイアログが表示され、form1 に戻って insertdata を実行する必要があります。

4

2 に答える 2

0

では、Form2 はポップアップであるはずですか?

その場合、作成するときに、で開きます

MyForm2.ShowDialog();

これにより、ダイアログ ボックスが "モーダル" になります。つまり、ユーザーは、この新しいフォームを処理するまで、最初のフォームを操作できません。次に、フォーム 2 にパブリック プロパティがある場合は、フォーム 1 でそれらにアクセスできるはずです。

于 2012-04-06T18:55:35.393 に答える
0

あなたは実際に必要なことをすでに言っています。電話

form2.ShowDialog()

これは「ブロッキング」呼び出しであるため、ユーザーが値を読み取ることができるようForm1になるまで、コードは待機します。Form2

お役に立てれば。

于 2012-04-06T18:54:12.877 に答える