事件,委托,总是看起来有点绕,不过本文不介绍这些,只说说如何为自定义控件添加自定义事件。
本文所说的自定义控件,非继承其他现有Microsoft控件或者组合控件,而是完全继承UserControl的 东西。
既然不是继承自其他现有控件或者控件组合,在特定需求下,有添加自定义事件的可能性,或者对继 承自UserControl而得到的事件进行些许扩展,以期以简便的方式得到更丰富的信息等等。
下面简单介绍2个例子,有用之人作为参考,大拿级别的,ignore吧。
例1. 添加完全自定义事件。
需求:
假设客户端(指添加了自定义控件的窗体等等)想知道用户是否在控件上按下的Shift键(当然,可以 通过KeyPress之类的事件来判断,没必要再自己整个事件,例子只是个例子),控件作者想通过一个特殊 的方式来进行判断,这就可以选择自定义事件。
好吧,起个名字,叫Custom,需要客户端在触发Custom时得到一个布尔属性Flag来判断用户是否按下 Shift。
按部就班:
(1)创建事件
// 创建事件 public event CustomEventHandler Custom;
有问题,CustomEventHandler是什么,当然,这里需要一个委托,于是还是搞定这个委托
(2)定义委托
// 定义委托 public delegate void CustomEventHandler(object sender, CustomEventArgs e);
CustomEventHandler搞定了,又有新问题:CustomEventArgs是啥,其实需要CustomEventArgs来获得 你需要的数据,CustomEventHandler,于是还要定义个CustomEventArgs(这个东西必须继承自 System.EventArgs),在CustomEventArgs里面定义需要的数据属性:Flag
(3)定义EventArgs
// 自定义EventArgs,并添加自定义属性【Flag】 public sealed class CustomEventArgs : EventArgs { private bool testFlag; public CustomEventArgs(bool testFlag) { this.testFlag = testFlag; } public bool Flag { get { return testFlag; } } }
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索控件
, 事件
, 属性
, 委托
, public
, 自定义 amear
, 自定义uidatepicker
, 自定义组合控件问题
, 自定义viewtextviewandroid
, 自定义popupwindowandroid
, 自定义xmlandroid
, 自定义控件
, #自定义控件
例子
c 自定义控件添加事件、c 自定义控件 事件、wpf 自定义控件 事件、.net 自定义控件 事件、c 添加自定义控件,以便于您获取更多的相关知识。