我可以實現一個自定義點擊事件,當用戶點擊我的對象時引發。C#自定義點擊事件,不從控件繼承
我的對象不會繼承任何類,但它具有位置寬度高度屬性。
問題是:我不知道當我創建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
}
}
您的對象不是一個可視化組件。我不認爲任何人都可以看到它點擊它。我認爲你需要繼承自:System.Windows.Forms.UserControl – 2013-03-26 13:14:02
爲什麼你不只是從提供你正在尋找的功能的東西繼承?這是繼承的重點。 – emd 2013-03-26 13:15:32