2013-05-14 28 views
-1

我在VS 2010,Windows窗体控件中工作。调用FlowLayoutPanel Mousedown处理程序时,点击子控件

我有一个扩展FlowLayoutPanel,我在其中动态添加按钮

我的问题是,对于MouseDownEventhandler除了flowlayout planel按钮的任何地方点击时只执行。 When clicked on button the MouseDownEventHandler for the FlowLayoutPanel is not called

我试着将接线功能添加到Panel的按钮的Click事件处理程序中。 但我注意到由于我遇到问题而导致延迟。

任何人都可以帮助我吗?

回答

0

这是propably不是最好的计算策略,但它为我工作:

//global mouse down handler for controls in flow panel 
private void ControlMouseDown(object sender, MouseEventArgs e) 
{ 
    var control = (Control)sender; 

    if (control.Parent is FlowLayoutPanel) 
    { 
     flowLayoutPanel1_MouseDown(sender, e); //if you have seperate method to handle click on flowpanel otherwise see reflection approach below 
    } 
} 

思考方法:

var onMouseDown = flowLayoutPanel1.GetType().GetMethod("OnMouseDown", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); 
onMouseDown.Invoke(flowLayoutPanel1, new object[] { e }); 

您可以全局事件绑定到流面板伊斯利所有子控件和这个作品给我的。希望我帮助:)

+0

我现在不在我的个人电脑上,明天我会试一试 – Dinesh 2013-05-14 16:25:24

相关问题