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