C#實(shí)現(xiàn)子窗體與父窗體通信方法實(shí)例總結(jié)
本文實(shí)例總結(jié)了C#子窗體與父窗體通信方法。分享給大家供大家參考。具體如下:
【第一種方法:】
第一步:
創(chuàng)建接口IForm,父窗體繼承這個(gè)接口
public interface IForm { void RefreshForm(); }
第二步:
父窗體實(shí)現(xiàn)接口中的方法,在實(shí)現(xiàn)接口的方法中寫入刷新代碼
Form2 f = new Form2(); f.Owner = this; f.ShowDialog();
第三步:
在子窗體中調(diào)用,刷新的方法
【第二種方法:】
1.父窗體中定義刷新的方法RefreshForm()
2.在點(diǎn)擊的事件Show出子窗體的時(shí)候,代碼如下:
Form form=new Form(); form.Show(this);
3.在子窗體的點(diǎn)擊事件中,代碼如下:
【第三種方法:】
通過事件解決方法:
子窗體中定義:
public delegate void sendmessage(string message); public event sendmessage SendTo ;
主窗體:
ChildForm frm = new ChildForm(); frm.SendTo += new ChildForm.sendmessage(SendArgs); frm.ShowDialog(this); private void SendArgs(string Message)//主窗體接收消息 {MessageBox.Show( "主窗體已收到消息: " + Message);}
子窗體測(cè)試:
【第四種方法:】
通過引用:
下例演示怎樣通過引用類型實(shí)現(xiàn)你的功能:
子窗體中定義:
新構(gòu)造函數(shù):
public ChildForm(MainForm parent) { InitializeComponent(); this.ParentFrom = parent;//引用 }
主窗體中某Click:
ChildForm frm = new ChildForm(this); frm.ShowDialog(this);
子窗體測(cè)試:
void ...Click(....) { this.Text = "測(cè)試引用 "; if (this.ParentFrom != null) this.ParentFrom.Text += "- " + this.Text;//....... }
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C#利用Label標(biāo)簽控件模擬窗體標(biāo)題的移動(dòng)及窗體顏色不斷變換效果
Label標(biāo)簽控件相信對(duì)大家來說都不陌生,下面這篇文章主要給大家介紹了關(guān)于C#利用Label標(biāo)簽控件模擬窗體標(biāo)題的移動(dòng)及窗體顏色不斷變換效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-12-12