C#中在一个窗体访问另一个窗体上控件的属性为什么总是空白?
我在C#中有两个窗体form1和form2,form1上有一个文本框textBox1,form2上有一个标签label1和一个按钮button2,程序运行之后,首先用Fo...
我在C#中有两个窗体form1和form2,form1上有一个文本框textBox1,form2上有一个标签label1和一个按钮button2,程序运行之后,首先用
Form2 f2 = new Form2();
f2.Show();
显示form2,然后向form1上的textBox1中输入文本如“你好!”,再点击form2上的按钮button2 执行代码:
Form1 f1 = new Form1 ();
label1.Text = f1.textBox1.Text;
但无论输入什么内容 label1.Text 都为空!网上很多人说这样能实现其它窗体中的控件属性的访问,请高手指示问题何在,不胜感激,如果说是用构造函数,请详细一点,急急…… 展开
Form2 f2 = new Form2();
f2.Show();
显示form2,然后向form1上的textBox1中输入文本如“你好!”,再点击form2上的按钮button2 执行代码:
Form1 f1 = new Form1 ();
label1.Text = f1.textBox1.Text;
但无论输入什么内容 label1.Text 都为空!网上很多人说这样能实现其它窗体中的控件属性的访问,请高手指示问题何在,不胜感激,如果说是用构造函数,请详细一点,急急…… 展开
4个回答
展开全部
form2上的按钮button2 执行代码:
Form1 f1 = new Form1 ();
label1.Text = f1.textBox1.Text;
你这样做,这里这个f1ginger不是之前你创建的那个form1窗体,所以你 label1.Text = f1.textBox1.Text;这句代码并不会影响form1上的属性。
你可以这样做。首先,在form1里,写一个public void gettext()
{
return this.textBox1.text;
}
然后,在form2里声明一个form1类型的变量。
要声明为类变量,也就是在类里,不是在方法里。
form1 f1 = null;
然后修改一下form2的构造函数。
form2(form1 f)
{
this.f1 =f;
}
在打开form2的时候,这样写
Form2 f2 = new Form2(this);
f2.show();
最后,在form2的button2的代码里写上,this.label1.text=this.f1.gettext();
ok
Form1 f1 = new Form1 ();
label1.Text = f1.textBox1.Text;
你这样做,这里这个f1ginger不是之前你创建的那个form1窗体,所以你 label1.Text = f1.textBox1.Text;这句代码并不会影响form1上的属性。
你可以这样做。首先,在form1里,写一个public void gettext()
{
return this.textBox1.text;
}
然后,在form2里声明一个form1类型的变量。
要声明为类变量,也就是在类里,不是在方法里。
form1 f1 = null;
然后修改一下form2的构造函数。
form2(form1 f)
{
this.f1 =f;
}
在打开form2的时候,这样写
Form2 f2 = new Form2(this);
f2.show();
最后,在form2的button2的代码里写上,this.label1.text=this.f1.gettext();
ok
展开全部
这里有个问题
首先你在form1 中建立form2的,然后再form2中再建立一个新的form1 你是new了一个form1 Form1是个类,所以这时有两个form1你访问的是新的form1 不信你再加句 form1.show()就知道了
首先你在form1 中建立form2的,然后再form2中再建立一个新的form1 你是new了一个form1 Form1是个类,所以这时有两个form1你访问的是新的form1 不信你再加句 form1.show()就知道了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我想给你说孩子你的办法是肯定不能实现你要的功能的,因为你new了一个新的Form1,这样你将是创建了一个新的对象。当然label1.text肯定是空的了。
你可以
你可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
调用form2时,像如下写:
Form2 f2 = new Form2(this);
f2.Show();
然后再在form2的构造方法处,如下写:
Form1 f1;
public Form2(Form1 f1)
{
InitializeComponent();
this.f1 = f1;
}
其他就像你所讲的。
Form2 f2 = new Form2(this);
f2.Show();
然后再在form2的构造方法处,如下写:
Form1 f1;
public Form2(Form1 f1)
{
InitializeComponent();
this.f1 = f1;
}
其他就像你所讲的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询