任意绑定自定义控件的指定事件的处理方法
2005-09-14 09:09
260 查看
任意绑定自定义控件的指定事件的处理方法
假设我们新建了一个自定义控件,通过程序动态的新增自己的自定义控件,为它们分别指定DoubleClick事件的处理方法。
public class myTest: System.Windows.Forms.UserControl
{
... ... 其它自动生成代码
#region 委托
public delegate void DoMyDoubleClick(myTest m);
#endregion
protected override void OnDoubleClick(System.EventArgs e) {
doMyDoubleClick(this);
}
public DoMyDoubleClick doMyDoubleClick;
private string _Title;
public string Title{
get{ return this._Title; }
set{ this._Title= value;}
}
}
需要使用的窗体
public class frmTableState : System.Windows.Forms.Form
{
... ... 其它自动生成代码
myTest myTest1 = new myTest();
myTest1.doMyDoubleClick = new myTest.DoMyDoubleClick(this.DoDoubleClick);
myTest1.Parent = this;
myTest myTest2 = new myTest();
myTest2.doMyDoubleClick = new myTest.DoMyDoubleClick(this.DoDoubleClick);
myTest2.Parent = this;
... ...
private void DoDoubleClick(myTest tUnit) {
MessageBox.Show(tUnit.Title);
}
}
以上是通过委托实现的,大家看后就可以明白,只是有一点要提一下。当我们从其它Control 继承 写自定义控件的时候,对于控件上事件的处理我们有两种方式,
一是绑定事件:
如:this.Resize += new System.EventHandler(this.myResize);
二是重写虚方法 override virtual method
如:protected override void OnResize(System.EventArgs e)
我们处理原则是采用 override virtual method 方式处理事件,否则在以后的处理中可能会产生问题。
bbs://www.xamsoft.com/bbs
本人水平有限如有疑问欢迎各位朋友来和我讨论。
如转载请保留全文!
假设我们新建了一个自定义控件,通过程序动态的新增自己的自定义控件,为它们分别指定DoubleClick事件的处理方法。
public class myTest: System.Windows.Forms.UserControl
{
... ... 其它自动生成代码
#region 委托
public delegate void DoMyDoubleClick(myTest m);
#endregion
protected override void OnDoubleClick(System.EventArgs e) {
doMyDoubleClick(this);
}
public DoMyDoubleClick doMyDoubleClick;
private string _Title;
public string Title{
get{ return this._Title; }
set{ this._Title= value;}
}
}
需要使用的窗体
public class frmTableState : System.Windows.Forms.Form
{
... ... 其它自动生成代码
myTest myTest1 = new myTest();
myTest1.doMyDoubleClick = new myTest.DoMyDoubleClick(this.DoDoubleClick);
myTest1.Parent = this;
myTest myTest2 = new myTest();
myTest2.doMyDoubleClick = new myTest.DoMyDoubleClick(this.DoDoubleClick);
myTest2.Parent = this;
... ...
private void DoDoubleClick(myTest tUnit) {
MessageBox.Show(tUnit.Title);
}
}
以上是通过委托实现的,大家看后就可以明白,只是有一点要提一下。当我们从其它Control 继承 写自定义控件的时候,对于控件上事件的处理我们有两种方式,
一是绑定事件:
如:this.Resize += new System.EventHandler(this.myResize);
二是重写虚方法 override virtual method
如:protected override void OnResize(System.EventArgs e)
我们处理原则是采用 override virtual method 方式处理事件,否则在以后的处理中可能会产生问题。
bbs://www.xamsoft.com/bbs
本人水平有限如有疑问欢迎各位朋友来和我讨论。
如转载请保留全文!
相关文章推荐
- delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。 使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如
- 绑定数据源时组合框ComboBox.DrawItem的事件处理方法
- JS绑定事件和移除事件的处理方法
- DataBinding系列二、绑定事件处理方法
- Android 动态创建Android控件、绑定事件处理的新方法
- 那些年朋友劝,该知道的ASP.NET - 自定义控件处理页面事件(控件与页面数据交互)的方法
- js事件绑定兼容处理方法。
- 处理jQuery append加入的元素 绑定事件无效的方法
- 同一事件绑定不同的处理方法、执行顺序有所不同
- JavaScript实现为指定对象添加多个事件处理程序的方法
- JS绑定事件和移除事件的处理方法
- jQuery判断元素上是否绑定了指定事件的方法
- jQuery动态添加的元素绑定事件处理函数代码的方法及比较
- Repeater,ItemDataBound事件,获取绑定列的值,给指定列添加js方法
- JS绑定事件和移除事件的处理方法
- XAML: 自定义控件中事件处理的最佳实践方法
- jquery delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数
- JQuery入门――用bind方法绑定事件处理函数应用介绍
- jQuery判断元素上是否绑定了指定事件的方法
- jquery 绑定事件的优化处理方法