我有以下情况(简化):在WinForms表单中,我有一个GroupBox。里面是一些UserControl_A对象,每个对象都包含几个UserControl_B对象(当然都是从UserControl派生的)。
我有GroupBox的ContextMenuStrip,无论是在任何UserControl_A / B对象还是GroupBox背景本身,每次右键单击都能正常工作。
但我还需要处理左键点击。处理GroupBox的Click和MouseClick事件正在运行,但仅在后台运行。只要指针位于UserControl_A或UserControl_B对象内,就不会发生任何事情。我试图处理两个UserControl类的Click和MouseClick事件,但根本不会调用处理程序。
任何暗示这里出了什么问题?或者如何调试这样的事件处理问题?
非常感谢您提前, 斯蒂芬
另外:我现在已经做了一个全新的,精简的项目来探索这种情况,一切正常。那么如何才能发现我的真实项目出了什么问题呢?
答案 0 :(得分:0)
您必须将UserControls
作为子控件添加到GroupBox
:
groupBox.Controls.Add(yourUserControl); // correct way
在此类型中,右键单击适用于父控件(GroupBox)的所有子项。
form.Controls.Add(groupBox);
form.Controls.Add(yourUserControl); // wrong way
答案 1 :(得分:0)
你把鼠标事件放在UserControl_A中(我认为它的类继承了Control) 该事件将在鼠标(上,下等等.......)上触发(UserControl) 当你(你的GroupBox)上的事件发生在groupBox
时