2017-10-06 21 views
0

我有Form1和Form2,在Form1中我有一些文本框,如用户名,密码和更多...和一个文本框“区域”。当用户点击“区域”(Form1.hide())时,Form2打开女巫有5个标签,其上有区域名称。如何从其他表单显示现有表单?

那么我怎样才能让用户点击Form2中的区域名称,Form1将有它的地区?并保留用户在区域点击之前输入的所有数据。

这样的事情(在表格2):

private void center_Click(object sender, EventArgs e) 
    { 
     this.Hide(); 
     Form1.region = "center"; 
     Form1.show(); 
    } 
+0

你只需要订阅形式的活动的FormClosing。当它触发时,e.Cancel是假的,那么你知道它即将死亡,所以调用this.Show()是一个好主意。注意FormClosed听起来像是一个更好的主意,但已经太晚了,另一个应用程序的窗口可能会成为焦点。另外请注意,你每天使用的应用程序并不是很多,他们通常有一个主窗口并在窗口内切换内容。像UserControl可以帮助你。 –

回答

0

在表2

private void center_Click(object sender, EventArgs e) 
{ 
    Form1 frm1 = new Form1(); 
    frm1.textbox_region = whateverobject.text; 
    this.hide(); 
    frm1.show(); 
} 

这将带来了它的区域文本Form1上。

0

尝试创建窗体2的实例,并调用ShowDialog()方法来显示它

Form2 form2= new Form2(); 
form2.ShowDialog(); 
0

当创建窗体2,只传递Form1中作为参数,并编辑在点击事件的文本框的值。

在Form1上:

private void click_on_region(object sender, EventArgs e) 
{ 
    this.Hide(); 
    Form2 frm2 = new Form2(this); 
    Form2.Show(); 
} 

在窗口2:

Form1 _frm1; 
public Form_Main(Form1 frm) 
{ 
    InitializeComponent(); 
    _frm1 = frm; 
} 
private void center_Click(object sender, EventArgs e) 
{ 
    this.Hide(); 
    _frm1.textBox_region.Text = whateverobject.Text; 
    _frm1.Show(); 
} 

这可能不是最漂亮的,但它会为初学者做。

0

表1个代码

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 


    private void button1_Click(object sender, EventArgs e) 
    { 
     Form2 objForm2 = new Form2(); 
     objForm2.ShowDialog(); 
     textBox_Region.Text = objForm2.RegionName; 
    } 
} 

和表格2码

public partial class Form2 : Form 
{ 
    public string RegionName 
    { 
     get 
     { 
      return textBox_Form2_Region.Text.ToString(); 
     } 
     set { } 

    } 
    public Form2() 
    { 
     InitializeComponent(); 
    } 
}