c# – 鼠标输入和鼠标在表单上保留
发布时间:2020-12-15 21:12:35 所属栏目:百科 来源:网络整理
导读:我有一个带有子控件的表单. 我想当用户将鼠标移到表单上时,表单将被关闭. 所以我抓住鼠标进入并在表格上离开.但是如果我在窗体中的任何控件上移动鼠标,鼠标离开事件也会被捕获. 请帮我解决这个问题.谢谢. 更新: 当光标的位置在表单的标题区域上时(该区域称
我有一个带有子控件的表单.
我想当用户将鼠标移到表单上时,表单将被关闭. 所以我抓住鼠标进入并在表格上离开.但是如果我在窗体中的任何控件上移动鼠标,鼠标离开事件也会被捕获. 请帮我解决这个问题.谢谢. 更新: 解决方法
基本上你想检查光标是否在控件的范围内.这是解决方案:
(1)以与表格大小相同的形式添加面板,并将表格中的所有控件移至面板.它很容易改变:打开MyForm.designer.cs,添加面板,并更改所有语句,如this.Controls.Add(myLabel); to this.myPanel.Controls.Add(myLabel);. (2)处理您添加的面板的MouseEnter和MouseLeave事件. myPanel.MouseEnter += (sender,e) => { //enter }; myPanel.MouseLeave += (sender,e) => { if (Cursor.Position.X < myPanel.Location.X || Cursor.Position.Y < myPanel.Location.Y || Cursor.Position.X > myPanel.Location.X + myPanel.Width || Cursor.Position.Y > myPanel.Location.Y + myPanel.Height) { //out of scope } }; (3)为什么不在步骤2中使用Form?为什么我们需要一个相同尺寸的面板?亲自尝试一下.形式的狭窄边界会让你发疯. (4)您可以将步骤2中的if语句转换为扩展方法,这有助于更进一步的使用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |