2009-11-19 106 views
0

我正在寫一個c#windows應用程序,作爲一項任務,我在運行時創建Panel對象。我定義爲我的自定義面板:在c運行時處理鼠標事件創建對象#

class FlowState : Panel 
{ 
: 
: 
} 

我有一個init方法來設置大小,位置等,但是一旦這種面板在Windows窗體上創建的,我想處理鼠標事件,如mouseDown和mouseUp。如果你創建在設計時面板和所使用的圖形用戶界面來定義這些事件,你會得到類似的方法如下(爲「PANEL1」命名的面板):

private void panel1_MouseDown(object sender, MouseEventArgs e) 
{ 
    //do stuff 
} 

如何把代碼放到我的FlowState對象它擴展Panel來處理這樣的鼠標事件?

回答

2

您可以將這樣的事件......

private void CreatePanel() 
} 
    var panel = new FlowState(); 
    panel.MouseDown += new MouseEventHandler(MouseDown); 
} 

private void MouseDown(object sender, MouseEventArgs e) 
{ 
} 
+0

唯一的評論我會做的是,事件的MouseDown和編譯器不喜歡私有方法也被命名的MouseDown。我把它放在鼠標下,一切都很好。 – 2009-11-19 19:43:06

+0

事實上,如果您在設計時已經完成了這個工作,您可以在FlowState.Designer.cs中看到同一行代碼(panel.MouseDown + = ...)。我們可以動態地綁定GUI將要完成的相同方法。 – cdkMoose 2009-11-19 21:24:36