繁体   English   中英

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

[英]How to handle a MouseDoubleClick in a cell of a TableLayoutPanel?

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

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

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

我试图将事件设置为整个UserControl (在其Designer-View通过定义其MouseDouybleClick-Event )。 但它不会再被捕获:(

我究竟做错了什么?

实际上双击的控件会触发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 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM