中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

委托在Smobiler自定義控件中運用

發布時間:2020-07-12 19:34:21 來源:網絡 閱讀:350 作者:smobiler 欄目:編程語言

委托(Delegate)

C# 中的委托(Delegate)類似于 C 或 C++ 中函數的指針。委托(Delegate) 是存有對某個方法的引用的一種引用類型變量。可以將方法當作另一個方法的參數來進行傳遞。

委托(Delegate)特別用于實現事件和回調方法。所有的委托(Delegate)都派生自 System.Delegate 類。

使用委托,必須滿足4個條件:


聲明委托類型;
必須有一個方法包含了要執行的代碼;
必須創建一個委托實例;
必須調用(invoke)委托實例。


聲明委托

委托聲明決定了可由該委托引用的方法。委托可指向一個與其具有相同標簽的方法。

public delegate void MyDelegate (string a);

委托調用

必須先實例化委托,然后再調用。
例如:

public delegate void MyDelegate();
//實例化委托
printString ex1 = new MyDelegate();
//委托調用 通過Invoke()調用,或者可以直接省略
ex1.Invoke();

委托的應用

使用Smobiler的自定義控件時,往往需要在自定義控件中自定義事件,這時就可以運用到委托。
自定義控件的創建可自行查看smobiler官網中自定義控件內容。

應用場景,自定義控件中有button控件,需要點擊button觸發自定義控件的事件。
我們下面直接看下,如何使用:

partial class ExampleButton :Smobiler.Core.Controls.MobileUserControl
{
/// <summary>
/// 在刪除按鈕點擊時發生
/// </summary>
[Description("在刪除按鈕點擊時發生")]

public event EventHandler ButtonPress;
public ExampleButton() : base()
{
//This call is required by the SmobilerUserControl.
InitializeComponent();
}
private void SmobilerUserControl1_Load(object sender, EventArgs e)
{
button1.Press += (obj, args) => { this.OnButtonPress(); };
}
private void OnButtonPress()
{
if (ButtonPress != null) ButtonPress.Invoke(this, new EventArgs());
}
/// <summary>
/// 一個委托,它表示按鈕點擊時要調用的方法。
/// </summary>
/// <param name="sender">事件源</param>
/// <param name="e">包含事件數據的 DeletePress</param>
/// <remarks></remarks>
public delegate void EventHandler(object sender, EventArgs e);
}
之后可在Form中添加自定義控件查看:

委托在Smobiler自定義控件中運用
查看自定義控件的事件,我們發現已經添加事件成功:

委托在Smobiler自定義控件中運用

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上虞市| 浮梁县| 普定县| 洞头县| 鄢陵县| 泰州市| 惠州市| 商洛市| 买车| 宕昌县| 隆安县| 濮阳县| 哈密市| 四子王旗| 孟津县| 大新县| 克拉玛依市| 定安县| 安多县| 宝清县| 宜都市| 当雄县| 浪卡子县| 南安市| 阳高县| 大同县| 安远县| 宝应县| 铜陵市| 五大连池市| 康乐县| 浠水县| 海阳市| 香河县| 新兴县| 海门市| 新和县| 东辽县| 岚皋县| 西安市| 屯留县|