Winform,鼠标单击弹出窗口
本文关键字:窗口 单击 鼠标 Winform | 更新日期: 2023-09-27 18:32:44
我有一个小弹出窗口,我想在窗口边界外单击鼠标时触发事件。
我尝试在 OnMouseClick 上启动它,并检查鼠标光标是否超出弹出范围,但它似乎没有触发弹出边界。
讨论:
public partial class FrmPopup : Form {
public FrmPopup() {
InitializeComponent();
}
const uint WM_NCACTIVATE = 0x0086;
protected override void WndProc(ref Message m) {
base.WndProc(ref m);
if (m.Msg == WM_NCACTIVATE && m.WParam == IntPtr.Zero) {
if(!ClientRectangle.Contains(PointToClient(Control.MousePosition)) && MouseButtons == MouseButtons.Left)
label1.Text = "Clicked outside of window";
}
}
}
您是否考虑过停用事件? 这将在窗体失去焦点时触发。 这可能来自鼠标单击或上下文切换,但可能会提供您想要的内容。