2009-11-19 51 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