假定使用者控制項
(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...