使用者控制項觸發事件

2021-04-08 16:34:13 字數 1854 閱讀 7728

假定使用者控制項

(usercontrol.ascx)

中包含按鈕控制項

abutton

,希望實現按

abutton

按鈕時,包含該使用者控制項的頁面可以接收到事件。為此,在使用者控制項和頁面的**中分別作了處理。

usercontrol.ascx.cs

中的處理:

1.

定義public

的事件委託,如

clickeventhandler;

2. 在

usercontrol

類中宣告事件,如

click;

3. 在

usercontrol

類中定義引發事件的方法,如

onclick()方法;

4. 在

usercontrol

類的相關方法中呼叫引發事件的方法,如在

button_click()

中呼叫onclick()。

public delegate void clickeventhandler(object sender, eventargs e);

public class myusercontrol : system.web.ui.usercontrol

private void abutton_click(object sender, system.eventargs e)}

包含

usercontrol

的頁面cs

檔案中的處理

:

1. initializecomponent()

中增加事件處理程式,採用

findcontrol

方法找到

usercontrol

;2.

定義事件處理方法,在該方法中處理

usercontrol

的事件,如

usercontrol_clicked()

。核心**示意如下:

private void initializecomponent()

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

總結一下,其實就是將事件機制利用手工程式設計的方法加進去:加入一般控制項

ide自動生成的**。順便說一下,

c#的事件機制實現了

obeserver pattern

,除了ui

還可以用於業務層,能有效地降低物件間的耦合度,像

usercontrol

那樣,根本無需知道包含它的頁面物件是誰!

**另一種方法

引用頁面

:<@register tagprefix=」uc1」 tagname=」editsearch」 src=」…/search/editsearch.ascx」>

後台頁面

:protected search.editsearch editsearch1;

新增事件

:this.editsearch1.onclick = new enenthander(dgfoot_onclick);

定義事件

:private void dgfoot_onclick(object sender,eventaegs e)

使用者控制項頁面

:

定義事件

:public event erenthander onclick;

建立觸發事件

使用者控制項事件處理

本文討論使用者控制項返回事件的方法。假定使用者控制項 usercontrol.ascx 中包含按鈕控制項abutton,希望實現按abutton按鈕時,包含該使用者控制項的頁面可以接收到事件。為此,在使用者控制項和頁面的 中分別作了處理。usercontrol.ascx.cs中的處理 1.定義pub...

使用者控制項中多控制項自定義單擊事件

這個題目聽上去有點繞,不知道該如何描述。如下圖,根據需求自定義了乙個使用者控制項 usercontrol 除了使用者控制項本身外,上面還有乙個標籤控制項 labelcontrol 和控制項 pictureedit 它們三者各自有乙個單擊事件 click 現使用者控制項的單擊click事件只能在 非控...

vba workbook觸發事件

這種涉及到book的觸發事件,就需要寫在thisworkbook裡面了 一開啟那個book,就自動觸發業務 private sub workbook open msgbox 奧利給兄弟們 endsub 在關閉我的book之前,給我執行的操作 private sub workbook beforecl...