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
有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.(.....)();