如何在TableLayoutPanel的单元格中处理MouseDoubleClick?

时间:2012-02-14 11:54:29

标签: c# winforms

我在TableLayoutPanel中有一个WinForm。使用自定义TableLayoutPanel动态填充UserControls的单元格。每个UserControls用于显示Chart(使用DevExpress图表工具)。这背后的原因是将图表排列成几行,每行包含三列。

现在由于图表相当小,我想让用户有机会通过双击图表来最大化每个图表。因此我尝试使用MouseDoubleClick-Event

我首先使用DesignerMouseDoubleClick-Event分配给TableLayoutPanel。只要表格的单元格为空,这就可以正常工作。只要其中有UserControl,就不会再触发/捕获事件(?)。

我尝试将事件设置为整个UserControl(在Designer-View中定义其MouseDouybleClick-Event)。但它没有被捕获:(

我做错了什么?

1 个答案:

答案 0 :(得分:0)

对于实际双击的控件,MouseDoubleClick事件被触发

如果您尝试双击其中一个UserControl,则会触发该事件的UserControl。

编辑:

由于您对UserControl的Chart控件的DockStyle属性为Fill,因此它实际上是双击的Chart控件(因为您的UserControl不是完全可见。

您可以做的是将事件转发给父控件(您的UserControl):

YouUserControl.cs:

    private void chartControl_DoubleClick(object sender, EventArgs e)
    {
        this.OnDoubleClick(EventArgs.Empty);
    }

注意: 实际上,创建一个仅包含一个DockStyle.Fill控件的UserControl有点奇怪。什么没有直接在TableLayoutPanel上使用Chart控件?如果是因为您在UserContorl中有其他方法/属性,则可能希望从Chart控件继承您的UserControl(如果它不是sealed)。