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(用户输入)从对话框传递到 form1-main 表单。

问题:我希望 Form1 中的程序等待,显示对话框,接受用户输入并返回并继续执行此部分。

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

                    }}

该对话框应显示然后返回到 form1 以执行插入数据

4

2 回答 2

0

你实际上已经说过你需要什么。称呼

form2.ShowDialog()

这是一个“阻塞”调用,因此Form1代码将等到用户关闭Form2并且您可以从中读取值之后。

希望这可以帮助。

于 2012-04-06T18:54:12.877 回答
0

那么Form2应该是一个弹出窗口吗?

在这种情况下,当你创建它时,打开它

MyForm2.ShowDialog();

这将使对话框“模态”,这意味着用户将无法与第一个表单交互,直到他们处理了这个新表单。然后,如果您在表格 2 中有公共属性,您应该能够在表格 1 中访问它们。

于 2012-04-06T18:55:35.393 回答