我在TableLayoutPanel
中有一个WinForm
。使用自定义TableLayoutPanel
动态填充UserControls
的单元格。每个UserControls
用于显示Chart
(使用DevExpress图表工具)。这背后的原因是将图表排列成几行,每行包含三列。
现在由于图表相当小,我想让用户有机会通过双击图表来最大化每个图表。因此我尝试使用MouseDoubleClick-Event
。
我首先使用Designer
将MouseDoubleClick-Event
分配给TableLayoutPanel
。只要表格的单元格为空,这就可以正常工作。只要其中有UserControl
,就不会再触发/捕获事件(?)。
我尝试将事件设置为整个UserControl
(在Designer-View
中定义其MouseDouybleClick-Event
)。但它没有被捕获:(
我做错了什么?
答案 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
)。