Re: [问题] Form值互传

楼主: MOONY135 (谈无欲)   2016-03-15 11:38:26
想请问这段话指的是
推 TameFoxx: Mainform只是个字段喔 需要从form1把form1自己传给form2 03/15 10:45
→ TameFoxx: form2的Mainform才能指向form1 03/15 10:45
→ TameFoxx: 物件都是被new出来的 程式从program进入的时候 03/15 10:47
→ TameFoxx: new过一次form1 03/15 10:47
→ TameFoxx: form1被new出来的时候会直接new一个form2 03/15 10:47
→ TameFoxx: 而按下按钮后会把form1(this)丢到form2的Mainform字段 03/15 10:47
→ TameFoxx: 所以就可以从form2的Mainform字段来控制form1 03/15 10:48
请问是这样吗 form1把自己丢给form2?
====form1===
private void button1_Click(object sender, EventArgs e)
{
Winform_Child WinCh = new Winform_Child();
WinCh.Patent_form_point(this);
WinCh.Show();
}
====Winform_Child(form2)====
private Form Patent_Pointer;
public void Patent_form_point(Form A)
{
Patent_Pointer = A;
}
再延伸一点
以下是别人的CODE
http://imgur.com/rbI1LVA
http://imgur.com/QGg9fuu
想问这一行的用法
((Winform_Main)Patent_Pointer).set_label_contet("return Msg");
我的认知这行是把form1(Winform_Main)当class来用
set_label_contet就是form1里面的方法
那((Winform_Main)Patent_Pointer)
有没有办法改成 form1.set_label_contet 这种格式来写呢?
因为包起来这种作法学c#到现在几乎没看过 也不知道怎样用
作者: TameFoxx (foxx)   2016-03-15 12:51:00
摁 是这样
作者: neo5277 (I am an agent of chaos)   2016-03-15 14:52:00
那其实你AFORM建完 BFORM加入参考 USING他就可以从那边传值过来了吧 当然还是可以用委派
楼主: MOONY135 (谈无欲)   2016-03-15 15:19:00
请问我贴的这种方法就是委派了吗
作者: xxtuoo (浪费时间不好QQ)   2016-03-15 20:51:00
不很喜欢这样写..但是不少见..看多也就习惯了XDD
作者: Litfal (Litfal)   2016-03-15 22:17:00
把private Form Patent_Pointer;的Form改成Form1就好了这样已经高度耦合的情况,就不需要用基底类别给自己找麻烦不对不是改成Form1,是Winform_MainPatent_form_point(Form A) 的Form也是

Links booklink

Contact Us: admin [ a t ] ucptt.com