问题描述
在C#中如何在from2中取得from1的值,我在from2中写的是:Form1f1=newForm1();this.label1.Text=f1.cbm1.text;但是提示我(cbm1)控件受到保护级别的限制;怎么解决啊?
解决方案
解决方案二:
改成公共成员public
解决方案三:
(cbm1)控件受到保护级别的限制说明他是私有的(可能是默认)那就吧把它设为Public的就Ok了!!
解决方案四:
好经典的问题哈哈我也最近刚刚解决.//在第一个form里写这些代码form2mf=newform2();mf.show();TextBox.Text=mf.Para;//第二个form也就是form2内在类下申明你需要传会的值比如privatestringa;//建立个返回值string的方法publicstringPara{get{returna;}}//哈哈
解决方案五:
怎么把控件(cbm1)设为public啊??
解决方案六:
设置个变量存放cmb1的值.其实用我的方法比较好~~
解决方案七:
按你的代码应该是//form2内调用form1然后关闭form1时返回一个值Form1f1=newForm1();f1.show();//实力化后得展现窗口吧?!然后做过改动后按确认或者关闭this.label1.Text=f1.Pare;//窗口被show后这段代码暂时挂起,等f1窗体被关闭或者hide后执行这段代码//上面这段是写在form2内的下面的是写在form1内的//下面的字符串申明在form1的class下privatestringa;//下面建立一个方法带string返回值publicstringPare{get{returna;}}//这样就可以在form2内得到f1内私有变量a的值了.你可以在f1内把cbm1的值传给a这样返回出来的就是cbm1的值
解决方案八:
hehe.你是用form1启动的form2吧,这样form2就成了被form1启动的子线程,你可以在form2的构造方法中写一个参数,在form1调用form2的时候将form1自己穿过去this这样你的那个代码就不会抱着个错误了
解决方案九:
public变量
解决方案十:
引用7楼qiao120196260的回复:
hehe.你是用form1启动的form2吧,这样form2就成了被form1启动的子线程,你可以在form2的构造方法中写一个参数,在form1调用form2的时候将form1自己穿过去this这样你的那个代码就不会抱着个错误了
这样是最直接的,如果真要按你的方法那只能改Form1.Designer.cs里的代码了,所有控件的访问级别都在此文件里默认设置成private了
解决方案十一:
控件受到保护级别private的限制,改为public
解决方案十二:
按照3楼的方法使用属性的方式传值较好,而不要将一个form里的控件设置为public