C#初学者的一个问题

来源:百度知道 编辑:UC知道 时间:2024/05/19 17:30:37
我这次的主要目的是想学习 窗体与窗体之间的控件的相互控制。

有2个窗题,分别是form1和form2。 form1里面有个按钮和一个textbox.

form2里面也是一样。

点form1里面的按钮`form2就会被show出来。

我想通过点form2里面的按扭,使from1里面的textbox.text等于form2里面的textbox.text。 该怎么办?代码如下:
form2:
namespace WindowsFormsApplication7
{
public partial class Form2 : Form
{

public Form2()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1();
f1.m_text = textBox1.Text;

}

}
}

form1:
namespace WindowsFormsApplication7
{
public partial class Form1 : Form
{

Form2 f2 = new Form2();

public string m_text
{

get { return textBox1.Text; }
set { textBox1.Text

给Form1添加一个只读的属性,用来暴露textbox的Text
这样就可以直接在Form2中访问到textbox的Text值了

窗体间传值有很多方法
不过有的方法用起来虽然很简单但是会导致窗体间的耦合过高
有的方法虽然可以减少耦合不过用起来又有点麻烦
根据具体情况看用什么方法了

先把要调用父窗体的变量或控件改为public

父窗体:
Form2 f = new Form2();
f.Owner = this;
f.ShowDialog();
子窗体:
Form1 r = new Form1()//在子窗体(Form2)中定义
r = (Form1)this.Owner;
r.(.....)();