![](/img/trans.png)
[英]How to handle both `MouseLeftButtonUp`and `MouseDoubleClick` mouse events?
[英]How to handle a MouseDoubleClick in a cell of a TableLayoutPanel?
我在WinForm
有一个TableLayoutPanel
。 TableLayoutPanel
的单元格使用自定义UserControls
动态填充。 每个UserControls
都用于显示Chart
(使用DevExpress图表工具)。 其背后的原因是将图表分成几行,每行包含三列。
现在,由于图表很小,我想给用户机会通过双击图表来最大化每个图表。 因此,我尝试使用MouseDoubleClick-Event
。
我首先使用Designer
将MouseDoubleClick-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.