不从控件继承的自定义单击事件
本文关键字:自定义 单击 事件 继承 控件 | 更新日期: 2023-09-27 18:05:50
我可以实现一个自定义的点击事件,当用户点击我的对象时引发。
我的对象没有继承任何类,但是它有一个Location Width Height属性。
问题是:我不知道如何代码,当我创建MyObj订阅点击事件。
public delegate void CusEventHandler(object sender, CusEventArgs e);
public class MyObject
{
private Point location;
private int width;
private int height;
public event CusEventHandler Click;
public MyObject(Point loc, int w, int h)
{
this.location = loc;
this.width= w;
this.height= h;
}
protected virtual void OnClick(CusEventArgs e)
{
if (Click != null)
{
Click(this, e);
}
}
}
public partial class Form1 : Form
{
public MyObject myObj;
public Form1()
{
InitializeComponent();
myObj = new (new Point(5,5),100,100);
myObj.Click+= new CusEventHandler(myObj_click);
}
private void myObj_click(object sender,CusEventArgs e)
{
//Some logic
}
}
建议您从Control继承您的类,这样命中测试已经为您完成了。
如果你不能复制System.Windows.Controls.Button
等可点击控件中使用的逻辑,那么你就不能这样做。您必须从提供Click
-事件的控件继承。这就是为什么会有继承,并且大多数控件都提供了从它们继承的功能。
另外,如果你的控件继承自一个像System.Windows.Controls.Control
这样的基类,你也不能在Windows中使用它。
。