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 都为空!网上很多人说这样能实现其它窗体中的控件属性的访问,请高手指示问题何在,不胜感激,如果说是用构造函数,请详细一点,急急……
展开
 我来答
mwtcz
2010-05-30 · TA获得超过1322个赞
知道小有建树答主
回答量:1367
采纳率:50%
帮助的人:1029万
展开全部
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
汤园七村
2010-05-31
知道答主
回答量:18
采纳率:0%
帮助的人:8.3万
展开全部
这里有个问题

首先你在form1 中建立form2的,然后再form2中再建立一个新的form1 你是new了一个form1 Form1是个类,所以这时有两个form1你访问的是新的form1 不信你再加句 form1.show()就知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
绮罗光阴眠灯待月co
2010-05-30 · TA获得超过134个赞
知道答主
回答量:170
采纳率:0%
帮助的人:82.9万
展开全部
我想给你说孩子你的办法是肯定不能实现你要的功能的,因为你new了一个新的Form1,这样你将是创建了一个新的对象。当然label1.text肯定是空的了。
你可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
猫王marvel
2010-05-30 · TA获得超过107个赞
知道答主
回答量:136
采纳率:0%
帮助的人:65万
展开全部
调用form2时,像如下写:
Form2 f2 = new Form2(this);
f2.Show();
然后再在form2的构造方法处,如下写:
Form1 f1;
public Form2(Form1 f1)
{
InitializeComponent();
this.f1 = f1;
}
其他就像你所讲的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式