利用自定義事件實現不同窗體間的通訊 C 篇

2021-03-31 17:55:03 字數 1195 閱讀 8253

c# 中的「事件」是當物件滿足一定條件,發生某些事情時,類向該類的客戶提供通知的一種方法。使用事件,擁有該事件的物件不必知道需要通知誰,一旦滿足了某個條件,將自動呼叫該事件,正確通知每個需要通知的物件。通過使用事件,提高了程式的模組化程度。

要在程式中使用自定義事件,需按以下步驟進行:

1、宣告事件

要在類內宣告事件,首先必須宣告該事件的委託型別:

public delegate void selectionchangedeventhandler(object sender,

selectionchangedeventargs e);

說明:由於本示例程式需在事件中傳遞資料,因此定義了eventargs的派生類selectionchangedeventargs。

public class selectionchangedeventargs : eventargs

}public selectionchangedeventargs(string selection)

}委託型別定義傳遞給處理該事件的方法的一組引數。多個事件可共享相同的委託型別,因此僅當尚未宣告任何合適的委託型別時才需要執行該步驟。

接下來,宣告事件本身:

public event selectionchangedeventhandler selectionchanged;

2、呼叫事件

如果沒有任何客戶將委託與該事件掛鉤,該字段將為空;否則該欄位引用應在呼叫該事件時呼叫的委託。因此,呼叫事件時通常先檢查是否為空,然後再呼叫事件。

public class form2 : system.windows.forms.form}}

3、與事件掛鉤

為了開始接收事件呼叫,客戶**先建立事件型別的委託,該委託引用應從事件呼叫的方法。然後它使用 += 將該委託寫到事件可能連線到的其他任何委託上。

public class form1 : system.windows.forms.form

... ...

private void button1_click(object sender, system.eventargs e)

private void frm2_selectionchanged(object sender, selectionchangedeventargs e)

}本示例效果如下圖所示:

利用自定義事件實現不同窗體間的通訊 C 篇

c 中的 事件 是當物件滿足一定條件,發生某些事情時,類向該類的客戶提供通知的一種方法。使用事件,擁有該事件的物件不必知道需要通知誰,一旦滿足了某個條件,將自動呼叫該事件,正確通知每個需要通知的物件。通過使用事件,提高了程式的模組化程度。要在程式中使用自定義事件,需按以下步驟進行 1 宣告事件 要在...

自定義事件實現不同窗體間的通訊Delphi篇

要實現子窗體與父窗體之間的通訊,有多種方法 比如 過載子窗體的建構函式,將父窗體的引用作為引數傳遞給子窗體 下面我要介紹的是利用自定義事件的方法,它能夠最大程度的避免模組之間的耦合,充分體現物件導向的優點。先將效果圖展示給大家 the no.1 picture.下面是實現 unit2 子窗體 typ...

c 用委託和事件實現不同窗體間的通訊

c 中的 事件 是當物件滿足一定條件,發生某些事情時,類向該類的客戶提供通知的一種方法。使用事件,擁有該事件的物件不必知道需要通知誰,一旦滿足了某個條件,將自動呼叫該事件,正確通知每個需要通知的物件。通過使用事件,提高了程式的模組化程度。例子 通過form1開啟form2,改變form2上combo...