【问题标题】:passing data between forms and continue in Form1在表单之间传递数据并在 Form1 中继续
【发布时间】:2012-04-07 02:55:35
【问题描述】:

我有一个非常基本的问题。 场景: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,时间,价值 现在我需要将这 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 执行插入数据

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    那么Form2应该是弹窗吧?

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

    打开它
    MyForm2.ShowDialog();
    

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

    【讨论】:

      【解决方案2】:

      您实际上已经说过您需要什么。 打电话

      form2.ShowDialog()

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

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-18
        相关资源
        最近更新 更多