资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

委托在Smobiler自定义控件中运用-创新互联

委托(Delegate)

彝良ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

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
{
///


/// 在删除按钮点击时发生
///

[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());
}
///


/// 一个委托,它表示按钮点击时要调用的方法。
///

/// 事件源
/// 包含事件数据的 DeletePress
///
public delegate void EventHandler(object sender, EventArgs e);
}
之后可在Form中添加自定义控件查看:

委托在Smobiler自定义控件中运用
查看自定义控件的事件,我们发现已经添加事件成功:

委托在Smobiler自定义控件中运用

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


标题名称:委托在Smobiler自定义控件中运用-创新互联
网页链接:http://cdkjz.cn/article/dojhgi.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220