程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#完成子窗體與父窗體通訊辦法實例總結

C#完成子窗體與父窗體通訊辦法實例總結

編輯:C#入門知識

C#完成子窗體與父窗體通訊辦法實例總結。本站提示廣大學習愛好者:(C#完成子窗體與父窗體通訊辦法實例總結)文章只能為提供參考,不一定能成為您想要的結果。以下是C#完成子窗體與父窗體通訊辦法實例總結正文


本文實例總結了C#子窗體與父窗體通訊辦法。分享給年夜家供年夜家參考。詳細以下:

【第一種辦法:】

第一步:

創立接口IForm,父窗體繼續這個接口

public interface IForm
{
    void RefreshForm();
}

第二步:

父窗體完成接口中的辦法,在完成接口的辦法中寫入刷新代碼

Form2 f = new Form2();
f.Owner = this;
f.ShowDialog();

第三步:

在子窗體中挪用,刷新的辦法
(this.Owner as IForm).RefreshForm();

【第二種辦法:】

1.父窗體中界說刷新的辦法RefreshForm()
2.在點擊的事宜Show出子窗體的時刻,代碼以下:

Form form=new Form();
form.Show(this);

3.在子窗體的點擊事宜中,代碼以下:
(this.Owner as Form).RefreshForm();

【第三種辦法:】

經由過程事宜處理辦法:
子窗體中界說:

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);}

子窗體測試:
if (this.SendTo != null) this.SendTo( "主窗體收到了嗎? ");

【第四種辦法:】

經由過程援用:

下例演示如何經由過程援用類型完成你的功效:
子窗體中界說:
protected MainForm ParentFrom = null;//主窗體

新結構函數:

public ChildForm(MainForm parent) 
{ 
InitializeComponent();
this.ParentFrom = parent;//援用 
}

主窗體中某Click:

ChildForm frm = new ChildForm(this); 
frm.ShowDialog(this);

子窗體測試:

void ...Click(....) 
{ 
this.Text = "測試援用 "; 
if (this.ParentFrom != null) this.ParentFrom.Text += "- " + this.Text;//....... 
}

願望本文所述對年夜家的C#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved