C#WinForm中如何判断鼠标是不是在某个控件以外按下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#WinForm中如何判断鼠标是不是在某个控件以外按下相关的知识,希望对你有一定的参考价值。

leave事件是不行的,在点击窗体的时候是不会触发leave事件的

先定义一个全局变量public Point p = new Point();
private void Form1_MouseMove(object sender, MouseEventArgs e)

p = e.Location;

private void Form1_MouseUp(object sender, MouseEventArgs e)

if (!this.groupBox1.ClientRectangle.Contains(p))

MessageBox.Show("在groupBox1外面");



之后还得把其它所有控件都加上MouseUp事件,里面都写
if (!this.groupBox1.ClientRectangle.Contains(p))

MessageBox.Show("在groupBox1外面");
参考技术A 为form添加MouseUp事件,响应函数为:
private void Form1_MouseUp(object sender, MouseEventArgs e)

if(!control1.ClientRectangle.Contains(e.Location))
dosomething;
本回答被提问者采纳
参考技术B private static int count = 0; //统计点击次数
自己写的事件
public void Sum_Click(object sender, EventArgs e)

count = count + 1;

Button的OnClick事件
protected void lbtnTextBox_Click(object sender, EventArgs e)

count = count + 1;
Response.Write("<script>alert('被点击次数为"+count+"');</script>");
参考技术C C#WinForm控件中又mouseup什么属性。那个就是判断鼠标的位置,和鼠标是否被按下的状态! 参考技术D 那就肯定是点击在form上了
form也有click事件

用c#winform拖的datagridview控件,当选中一行数据以后鼠标离开之后,就选不中了

用c#winform拖的datagridview控件,当选中一行数据以后鼠标离开之后,就选不中了这是怎么回事呢?鼠标离开以后,选中的一行又变白了

参考技术A 这个没关系,你只要点击了其中一行就行,然后去做你想要的操作。直接用DataGridView.SelectedIndex。。。获取选中行的值就行了 参考技术B 如果选中背景颜色,可以在行的click事件里添加 参考技术C 你那是滑动的效果吧, 不是选中, 选中时单击数据行

以上是关于C#WinForm中如何判断鼠标是不是在某个控件以外按下的主要内容,如果未能解决你的问题,请参考以下文章

C# winform,怎么通过控件的Name属性判断某个控件是不是已经存在

c#winform如何画像vs一样的界面

C#winform中鼠标左键点击控件弹出右键菜单 右键点击控件无效

winform 如何实现鼠标位置获取picturebox的焦点,然后焦点放大

用c#winform拖的datagridview控件,当选中一行数据以后鼠标离开之后,就选不中了

winform中如何判断panelControl中的某控件是不是存在