2014-04-02 27 views
1

我有Winform应用 有2个表格1的名称Tree第2'名称AddRegion具有3个控制公共修饰符 我发送的值在树与AddRegion控制它正常工作,但开放的新AddRegion 我如何能在开形式发送值以另一种打开的形式将值发送到文本框?

// this is button cick in Tree 
Definitions.AddRegion addreg = new Definitions.AddRegion(); 
addreg .txt_accno.Text ="1"; 
addreg .txt_acconame.Text = "2"; 
addreg.lbl_ParentID.Text ="3"; 
addreg.ShowInTaskbar = false; 
// addreg.Show(this); 
this.Hide(); 
+0

获取“AddRegion”数据进行了一些事件,或使用按钮,然后单击事件 – andy

+1

您可以发送一个参考到Form1一个在窗口2的构造,使控制你想更新公共。 – TaW

回答

1

试试这个方法,

for (int i = 0; i < Application.OpenForms.Count; i++) 
{ 
    if (Application.OpenForms[i].Name == "YourFormName") 
    { 
     YourForm form = (YourForm)Application.OpenForms[i]; 
     ///Assign the value here 
     ///form.txt_accno.Text = "1"; //etc. 
    } 
} 

EDITE:

即使你可以使用LINQ找到打开的窗体。

var forms = (from Form form in Application.OpenForms 
          where form.Name == "Form2" 
          select form) 

这个怎么样

YourForm form = (YourForm)Application.OpenForms["formName"]; 
+0

这并不糟糕,并得到我的目标,但我使用超过31形式的树(搜索):S – SOFKiNG

+0

您可以使用LINQ找到打开的表单。我已经更新了我的答案,请看看。 – Shell

+0

感谢您的努力,我想更容易的方式,我会标记为答案已经工作! – SOFKiNG

-1

将Definitions.AddRegion表单保留在方法之外的方法中。

因此,这将是全球性的和可访问的,如:

Definitions.AddRegion addreg = new Definitions.AddRegion(); 

void button1_Click(object sender, EventArgs eventArgs) 
{ 
    addreg .txt_accno.Text ="1"; 
    addreg .txt_acconame.Text = "2"; 
    addreg.lbl_ParentID.Text ="3"; 
    addreg.ShowInTaskbar = false; 
    this.Hide(); 
} 
+0

相同!打开新的实例 – SOFKiNG

+0

@SOFKiNG不可能。 – dovid

+0

我测试过并且一样! – SOFKiNG

相关问题