【发布时间】:2013-02-04 17:52:12
【问题描述】:
我有一个带有多个子控件的UserControl-derived 控件(此处:三个停靠标签)。为了对用户控件上任意位置的点击做出反应,我override WndProc() 并寻找
WM_PARENTNOTIFY/WM_LBUTTONCLICK
-- 这是在MSDN 上建议的,效果很好。
用户点击鼠标的反应是打开一个(模态)弹出对话框。但是,当我尝试执行此操作时,出现了一个奇怪的行为:有时,对话框闪烁数次,并出现 Windows 声音。关闭对话框后,用户必须单击主窗口(包含 UserControl)才能重新设置焦点。有时,没有闪烁也没有声音,但主窗体也会失去焦点。
与此相反,UserControl 旁边的按钮也会打开该弹出对话框。无闪烁无声音,关闭弹窗后主窗口自动重新获得焦点。
UserControl/WndProc 构造有什么问题?
我包含一个示例项目 (VS2008) 来说明行为:(via DropBox)
【问题讨论】:
标签: c# winforms user-controls wndproc