程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 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