WinForm 求教如何捕获窗口外的鼠标事件 SetCapture

WinForm 求教如何捕获窗口外的鼠标事件 SetCapture,第1张

[DllImport("user32dll")]

public static extern bool ReleaseCapture();

[DllImport("user32dll")]

public static extern IntPtr SetCapture(IntPtr h);

private void Form2_Load(object sender, EventArgs e)

{

SetCapture(thisHandle);

}

private void Form2_FormClosing(object sender, FormClosingEventArgs e)

{

ReleaseCapture();

}

private void Form2_MouseUp(object sender, MouseEventArgs e)

{

Close();

}

不是程序本事说明已经在程序之外了,那就要调用系统的API来获取鼠标位置了。

[DllImport("user32dll")]

internal static extern bool GetCursorPos(out Point lpPoint);

想获取坐标的时候就调用:

Point mouserPoint = new Point();

GetCurosoPos(out mouserPoint);

这样鼠标的坐标就存在mouserPoint变量里了

还有一个土办法,就是把你的程序界面全透明,最大化,然后鼠标移动在屏幕其实就是在你的程序里面移动,鼠标点击的时候让程序最小化,使后面的元素能接收到事件就行了。

方法有很多,关键要多想。

这个不需要获取鼠标位置就可以实现的

winform的话,你可以往界面上拖一个tooltips控件,然后在你想要显示文本的控件上设置tooltip属性就行了

webform的话,设置控件的title属性就可以了

横坐标是实时采集的时间,纵坐标是实时值。

假设每隔一秒采集一次共一分钟的显示。

第一秒的放到横轴60的位置,采集完一分钟后第六十一秒的数据占第六十的位置,之前的数据往前移一位,然后显示每个点,再用线连起来。

C#是一个语言,net是一个平台,上面支持用C#或者VB Net写代码。

另外,C#不但可以开发基于net的应用程序,也可以开发基于WinForm的程序,这就是区别。

NET 是 Microsoft 的 XML Web 服务平台。不论 *** 作系统或编程语言有何差别,XML Web 服务能使应用程序在 Internet 上传输和共享数据。

你可以先声明个属性:bool IsMouseInPanel,然后在应用程序的Paint事件中获取目前鼠标的位置x,y,假设panel的位置为:px,py,宽高为:pw,ph,如下代码可知道鼠标是不是在panel中:

if(x > px && y > py && x < px + pw && y < py + ph)

IsMouseInPanel = true;

else

IsMouseInPanel = false;

然后在其它地方只要取得IsMouseInPanel 的值就可以知道鼠标是不是在panel中了

以上就是关于WinForm 求教如何捕获窗口外的鼠标事件 SetCapture全部的内容,包括:WinForm 求教如何捕获窗口外的鼠标事件 SetCapture、如何获取c#winform textbox光标位置附近文字、c# 我想在mouseup事件后,在鼠标的位置放一个label或其他任意可以显示文本的东西。怎么获取鼠标位置啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9275929.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存