0

我有以下情况(简化): 在 WinForms 表单中,我有一个 GroupBox。它里面有一些 UserControl_A 对象,每个对象都包含几个 UserControl_B 对象(当然,它们都是从 UserControl 派生的)。

我有一个用于 GroupBox 的 ContextMenuStrip,每次右键单击都可以正常工作,无论是在任何 UserControl_A/B 对象上还是在 GroupBox 背景本身上。

但我还需要处理左键单击。处理 GroupBox 的 Click 和 MouseClick 事件是有效的,但仅在背景上。只要指针位于 UserControl_A 或 UserControl_B 对象内,就不会发生任何事情。我试图处理两个 UserControl 类的 Click 和 MouseClick 事件,但根本不会调用处理程序。

任何提示这里出了什么问题?或者如何调试这样的事件处理问题?

非常感谢你,斯特凡

补充:我现在做了一个全新的、精简的项目来探索情况,一切正常。那么我怎样才能检测到我的真实项目出了什么问题呢?

4

2 回答 2

0

您必须将您UserControls的子控件添加到GroupBox

groupBox.Controls.Add(yourUserControl); // correct way

在这种类型中,右键单击适用于您的父控件(GroupBox)的所有子控件。

form.Controls.Add(groupBox);
form.Controls.Add(yourUserControl); // wrong way
于 2013-01-05T12:34:29.380 回答
0

你把鼠标事件放在 UserControl_A 中(我认为它的类继承了 Control)当你在(你的 GroupBox )上的鼠标(over,down,等等......)在那个(UserControl)上时,事件将触发组框

于 2013-01-08T06:10:57.787 回答