调用构造函数不填充已打开表单的文本框字段?

时间:2015-12-16 18:06:16

标签: c# .net winforms

我正在开发一个应用程序,我必须从2种不同的表单中获取数据以填充相同表单的不同字段

我的工作

我已经从派对形式和带有参数的itemform调用了form1的构造函数  代码表格Itemform

            string units = dr.Cells[2].Value.ToString();
            string rate = dr.Cells[3].Value.ToString();

            Form1 f1 = new Form1( units, rate);

            this.Hide();
调试时调用form1上的

构造函数

    public Form1(string units, string rate)
     {
         InitializeComponent();
         ItemId_LBL.Text = units;
         ItemName_TXT.Text = rate;
         }

同样的另一种形式,但我不想关闭我的主form1,只关闭其他表单,同时单击按钮构造函数调用但字段未填充为什么

注意:

  

我必须填写已打开表格FORM1的文本框

3 个答案:

答案 0 :(得分:2)

如果Form1已经打开,则表示构造函数已经运行。制作一个setter方法并从其他形式调用该方法。

public void UpdateUnitAndRate(string units, string rate)
{
    ItemId_LBL.Text = units;
    ItemName_TXT.Text = rate;
}

//put it in form2 (or itemform) as a field
Form1 f1;

//add this in the method or event (in itemform) you want to update units and rates in form1
if (f1 != null)
   f1.UpdateUnitAndRate(units, rate);
else
   f1 = new Form1(units, rate);

答案 1 :(得分:2)

从另一个表单获取打开表单的对象

    Form1 f = (Application.OpenForms[0] as Form1);

                f.PName_TXT.Text = name.ToString();
                f.PId_LBL.Text = id.ToString();
         }

答案 2 :(得分:0)

我认为你要找的是Application.OpenForms,用它来创建一个打开表单的实例并访问文本框。