问题描述
目前在MDI主窗体Form1内设置了get和set属性访问器子窗体FrmLogin是通过菜单控件show出来的FrmLoginfrm=newFrmLogin();frm.MdiParent=this;frm.show();现在的问题是我子窗体FrmLogin通过验证后有两个值要传给主窗体Form1该如何写!谢谢!!目前我在窗体是这样写的。。//验证用户的代码Form1f=newForm1;f.Quanxian=Covert.ToInt32(quanxian);f.gonghao=Covert.ToInt32(gonghao);这样传过去那里拿不到!是不是因为我new了一个新的form1的原因?谢谢!!!!!
解决方案
解决方案二:
Form1f=newForm1;f.Quanxian=Covert.ToInt32(quanxian);f.gonghao=Covert.ToInt32(gonghao);quanxian和gonghao是什么东西
解决方案三:
是两个标志变量!用来判断权限和显示工号的!!这个两个变量是通过用户登入后得到的信息我前面忘记写this.了!!!
解决方案四:
((Form1)frm.MdiParent).Quanxian
解决方案五:
((Form1)f.MdiParent).Quanxian=Covert.ToInt32(quanxian);((Form1)f.MdiParent).gonghao=Covert.ToInt32(gonghao);
解决方案六:
new当然拿不到了,因为是另一个对象直接从FrmLogin的MdiParent里面拿就可以了
解决方案七:
简单一点的话。。。你可以在子窗体里多做一个构造函数。。。传个主窗体进去就好了~~privateFormFatherMyForm;publicFormChild(FormFatherf){InitializeComponent();MyForm=f;}
解决方案八:
引用4楼jinjazz的回复:
C#code((Form1)f.MdiParent).Quanxian=Covert.ToInt32(quanxian);((Form1)f.MdiParent).gonghao=Covert.ToInt32(gonghao);
解决方案九:
在子窗体中在做一个带参的构造函数Form1f=newForm1;f.Quanxian=Covert.ToInt32(quanxian);f.gonghao=Covert.ToInt32(gonghao);这段该如何写?另外((Form1)f.MdiParent).Quanxian=Covert.ToInt32(quanxian);((Form1)f.MdiParent).gonghao=Covert.ToInt32(gonghao);这两个方法报错说我未将对象引用??
解决方案十:
classform2{privatestringm_Para="";publicstringPara{get{returnm_Para;}}...}------------------------------form2f=newform2();if(f.ShowDialog()==DialogResult.OK){this.textBox1.Text=f.Para;}
解决方案十一:
请问((Form1)f.MdiParent).Quanxian=Covert.ToInt32(quanxian);((Form1)f.MdiParent).gonghao=Covert.ToInt32(gonghao);这个也是要new对象的,是什么原理,能解释一下吗?谢谢!!
解决方案十二:
这个不new对象..只是f.MdiParent已经指向了本来的Form1
解决方案十三:
引用6楼HDNGO的回复:
简单一点的话。。。你可以在子窗体里多做一个构造函数。。。传个主窗体进去就好了~~privateFormFatherMyForm;publicFormChild(FormFatherf){InitializeComponent();MyForm=f;}
我一般用这个
解决方案十四:
那((Form1)f.MdiParent).Quanxian=Covert.ToInt32(quanxian);这里的f是什么东西啊???
解决方案十五:
引用楼主wzgccm的帖子:
目前在MDI主窗体Form1内设置了get和set属性访问器 子窗体FrmLogin是通过菜单控件show出来的FrmLoginfrm=newFrmLogin();frm.MdiParent=this;frm.show();现在的问题是我子窗体FrmLogin通过验证后有两个值要传给主窗体Form1该如何写!谢谢!!目前我在窗体是这样写的。。//验证用户的代码Form1f=newForm1;f.Quanxian=Covert.ToInt32(quanxian);f.gonghao=Covert.ToInt32(gongh…
你还问f是什么意思?
解决方案:
sorry,看错了应该是((Form1)this.MdiParent).Quanxian=Covert.ToInt32(quanxian);
解决方案:
哈哈!!没问题了!!请问((Form1)this.MdiParent)这样写就代表Form1.Quanxian=Covert.ToInt32(quanxian);不需要new一个新的form1对吗?(Form1)这个个引用的意思吗??能给我解释一下吗?效果是达到了但是没有搞明白里面的意思!麻烦你了!!
解决方案:
1.在newForm时候用构造函数2.用CallContext