判断鼠标是否在控件上? (在控制像素范围内)

2024-01-06

我正在尝试编写一个函数来确定鼠标是否超出像素范围(特定控件的像素范围)

问题是该函数仅适用于Form,不适用于我测试过的按钮或任何其他控件...我缺少什么?

''' <summary>
''' Determinates whether the mouse pointer is over a pixel range of the specified control.
''' </summary>
''' <param name="Control">The control.</param>
''' <returns>
''' <c>true</c> if mouse is inside the pixel range, <c>false</c> otherwise.
''' </returns>
Private Function MouseIsOverControl(ByVal [Control] As Control) As Boolean

    Return [Control].Bounds.Contains(MousePosition)

End Function

PS:我知道鼠标事件的用法,但这个函数是通用的。


你需要改造鼠标位置 https://msdn.microsoft.com/en-us/library/system.windows.forms.control.mouseposition(v=vs.110).aspx进入客户端坐标并测试客户端矩形 https://msdn.microsoft.com/en-us/library/system.windows.forms.control.clientrectangle(v=vs.110).aspx的控制。

VB.NET

Imports System.Windows.Forms
Public Function MouseIsOverControl(ByVal c As Control) As Boolean
    Return c.ClientRectangle.Contains(c.PointToClient(Control.MousePosition))
End Function

C#

using System.Windows.Forms;
public bool MouseIsOverControl(Control c)
{
    return c.ClientRectangle.Contains(c.PointToClient(Control.MousePosition));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

判断鼠标是否在控件上? (在控制像素范围内) 的相关文章

  • 如何使用 C# 在 MS Excel 单元格中添加数字验证

    我的目标是限制用户在 MS Excel 单元格中仅输入 1 到 100 范围内的值 我正在以编程方式生成 Excel 文件 但是当我添加上述验证时 抛出异常Exception from HRESULT 0x800A03EC 我写的代码如下
  • 从 DataGridViewSelectedRowCollection 复制列详细信息

    我有一个 DataGridView 它绑定到一个由设计时未知的 SQL 查询返回的 DataSet 好吧 我知道查询是什么 我只是不知道用户选择了哪一个 我允许用户从表中选择一组行并单击 确定 按钮 然后我想将这些行复制到新的 DataGr
  • DBNull 怎么会不等于 DBNull

    我有以下代码行 if DBNull Value Equals o o null where o is object o in row ItemArray我不断收到错误 gt Xml type List of xdt untypedAtomi
  • 多线程 Web 应用程序

    我知道有很多情况都是在应用程序中使用多线程的好例子 但是什么时候最好在 net Web 应用程序中使用多线程 Web 应用程序几乎肯定已经由托管环境 IIS 等 实现多线程化 如果您的页面受 CPU 限制 并且想要使用多个核心 那么可以说多
  • 有没有办法将对象(及其属性)序列化为 xml?

    创建一个类 将其命名为 FormElement 该类应该具有一些属性 例如它们具有数据元素的元数据 名称 序列号 值 只是一个字符串等 该类具有验证应用程序块验证类类型的属性 我想将其序列化为xml并反序列化 验证类的所有属性 包括验证应用
  • Task.Run 作为反模式?

    我正在将 SQLite NET PCL 库用于我的 WinRT 项目SQliteAsyncConnection类 它提供经典的异步版本SQLiteConnection方法 然而 就该项目而言Github页面 https github com
  • 如何隐藏数据列表中的项目

    我想隐藏一个项目datalist根据某种条件起诉ItemBound how Wrap a PlaceHolder控制整个内容ItemTemplate 然后在 ItemDataBound 事件中 您可以执行以下操作 Protected Sub
  • LINQ 中“最受欢迎”的 GROUP BY?

    假设有一个标签表 例如 stackoverflow 问题标签 TagID bigint QuestionID bigint 标签 varchar 使用 LINQ 获取 25 个最常用标签的最有效方法是什么 在 SQL 中 一个简单的 GRO
  • 在 WebAPI 操作方法中抛出 HttpResponseException 返回空 200 响应

    我正在尝试从我的应用程序返回适当的 Http 代码和响应 但我很挣扎 似乎有两种方法可以返回特定的http响应 我想要处理它的方法是抛出一个HttpResponseException public Information Get int a
  • WPF:鼠标按下时不会触发鼠标离开事件

    我遇到鼠标进入 离开事件的问题 当按下鼠标按钮并按住光标在控件内 然后光标以足够快的速度移出控件时 此事件不会触发 你能告诉我为什么会这样吗 有什么方法可以正确获取这些事件吗 请检查示例项目以查看其实际效果 https www dropbo
  • ASP.NET AJAX 进度条:从代码隐藏更新?

    我在应用程序中具有 Excel 电子表格的导入功能 目前它使用 FileUpload 控件 我上传文件 然后对该文件运行操作 我想通知用户正在完成的操作以及完成的百分比 我认为我可以获取从 Excel 电子表格中提取的总行数 并在将每条记录
  • TransactionScope 的细微差别

    假设我有两个线程 它们在特定于线程的 TransactionScope 中执行一些面向数据库的代码 并具有 ReadCommissed 隔离级别 但是有一些表的数据应该共享 不应创建重复项 using var transactionScop
  • Global.asax 和 Error.aspx 中的 ASP.NET MVC 错误日志记录

    我正在创建一个 ASP NET MVC 应用程序 我需要在两个地方处理异常 Global asax vb 文件 Public Class MvcApplication Inherits System Web HttpApplication
  • VB.net 应用程序保留以前的版本

    我有一个正在发布的 Visual Basic 项目 并且每次都会增加版本号 当我安装新版本时 它会打开 但一旦应用程序重新启动 它似乎就会恢复到以前的版本 我不知道为什么 尝试更新发布应用程序时所需的最低版本 转到应用程序属性 gt 发布
  • 我可以修改Win7环境以允许.Net程序始终以管理员身份运行吗?

    我们即将推出数百台运行 Windows 7 的新机器 操作系统通过 WDS 安装 因此目前我们可以进行更改并将其 sysprep 到构建中 问题是我们几年前编写的一个 Net 应用程序 它本身会生成一个修改后的命令 shell 该 shel
  • 将标签文本设置为 gridview 的总行数

    我使用 sql 数据库中的存储过程作为 aspx 页面上 SqlDataSourceControl 的数据源 然后 我使用 SqlDataSourceControl 作为页面上 gridview 的数据源 gridview 上的分页设置为
  • 为什么 .Net 框架指南建议您不要使用 ref/out 参数?

    显然 他们很 混乱 这是认真的原因吗 你还能想到其他的吗 你见过有多少开发人员并不真正理解 ref out 吗 我在真正需要的地方使用它们 但在其他地方则不然 它们通常仅在您想有效返回两个或多个值时才有用 在这种情况下它至少值得thinki
  • DataContractJsonSerializer 包含元素类型子类型的通用列表

    我要使用DataContractJsonSerializer用于 JSON 序列化 反序列化 我在 JSON 数组中有两种对象类型 并希望将它们都反序列化为相应的对象类型 具有以下类定义 DataContract public class
  • 如何将对 System.Data.DataSetExtensions 的引用添加到网站 ascx.cs 文件?

    我们正在处理一个网站项目并尝试参考System Data DataSetExtensions 使用 Web 应用程序会更好 不过 技术主管有她的理由 这是我们尝试过的 找到装配路径 打开 Visual Studio 命令提示符并运行sn e
  • 运行 Aero 时如何确定实际窗口窗体大小(包含所有非客户端元素)?

    我试图将我的表单精确定位在任务栏上方 不幸的是 我的努力受到了以下事实的阻碍 this Height在我的表单上返回一个比实际表单 包含所有边框 标题栏等 小 10 像素的值 我正在运行带 Aero 的 Windows 7 当 Aero 关

随机推荐

  • monodis 和 ikdasm 有什么区别?

    我使用的是mono 3 8 0 安装后 我发现mono bin 目录中有两个汇编程序 monodis 和 ildasm 在测试过程中 我发现生成的 il 文件不同 ikdasm 生成的文件与 MS Net 中的 ildasm exe 相同
  • C++ 数组(初学者)

    我把数组误认为是向量 抱歉 数组在瑞典语中是向量 我正在制作的程序需要一些帮助 这是一项作业 所以我真的需要了解如何做到这一点 而不仅仅是获取代码 P 我需要创建一个包含 10 个 数字 的数组 我想让它们在程序运行时可编辑 完成此操作后
  • Hibernate 和多线程逻辑

    我正在开发一个 java 独立项目 我需要在多线程应用程序中使用休眠 但我只是不知道如何正确设置它 每个线程处理其他线程的相同进程 当我以非异步方式运行它时 一切都很好 但是当我使用线程调用相同的东西时 休眠就无法正常工作 谁能解释一下在多
  • PHP - 将日期转换为 YYYY-MM-DDTHH:MM:SS

    我想知道是否可以将今天的日期格式化为以下格式 YYYY MM DDTHH MM SS 保留 T 很重要 如下所示 2017 07 20T00 00 00 下面我有 invoice date date Y m d H i s 我不知道如何在中
  • 如何在 nuxt 中使用 google recaptcha?

    我正在使用 nuxt 并且想使用这个库 https github com nuxt community recaptcha module https github com nuxt community recaptcha module 但我
  • React:this.state在for循环中消失

    我怎样才能携带this进入我的 map 环形 它似乎消失了 我正在创建一个 动态表单 用户可以在其中为其表单指定多行输入 我想迭代所有项目state items 并为他们构建表单输入字段 例如 表单以 field 和 autocomplet
  • 找不到案例类的 JsonWriter 或 JsonFormat 类型类

    遵循来自的教程http www smartjava org content first steps rest spray and scala http www smartjava org content first steps rest s
  • Clojure 文档工具的最新技术 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在过去一年左右的时间里 我在 Clojure 讨论列表和其他地方看到了有关记录 Clojure 代码的工
  • 将 powershell 脚本更改为不带省略号的输出 (...)

    我需要有关以下脚本输出的一些帮助 以便输出不会显示省略号 我尝试插入 Format Table Wrap AutoSize但我似乎就是做不到 clear host Add PSSnapin microsoft sharepoint powe
  • Excel VBA 运行时错误 1004

    我正在使用 VBA for Excel 2010 并随机收到以下错误 运行时错误 1004 排序引用无效 请确保它位于要排序的数据内 并且第一个排序依据框不相同或为空 这是代码 Sort the active rows With Activ
  • Eclipse 和 Android 错误“parseSdkContent 失败”

    自从我升级了之后就出现了这个问题Android Tools至 21 1 当我启动 eclipse 时 即使在干净的工作区中 我也会收到错误parseSdkContent failed细节说 com android sdklib device
  • 如何设置 cron 在特定时间只运行一次文件? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我该如何设置cron在特定时间只运行一次文件 替代方案之一是at https en wikipedia org wiki At comma
  • 在 ASP.Net 应用程序中安全地存储(加密)数据

    我有一个 asp net 应用程序 人们可以使用网络浏览器通过互联网访问该应用程序 它在 Web 服务器上运行并与后端数据库进行通信 一些用户希望使用该应用程序来存储一些私人数据 对此的要求是 1 只有存储数据的用户才能看到它 2 开发人员
  • 在 Python 中将表达式嵌入到字符串中相当于什么? (即 Ruby 中的“#{expr}”)

    在Python中 我想创建一个带有嵌入表达式的字符串块 在 Ruby 中 代码如下所示 def get val 100 end def testcode s lt
  • 获取listview的item双击事件

    我需要做什么才能引用列表视图控件的双击事件
  • WPF Groupbox高度需要动态改变?

    我正在 WPF 中使用组框 组框的内部是一个堆栈面板 堆栈面板中的项目已被删除并添加到其子项中 我遇到的问题是组框中的 Stackpanel 正在更改高度 但 GroupBox 没有 因此它会切断 stackpanel 中添加的其余项目 如
  • 来自最大子记录数的表约束

    考虑以下针对学生和几门课程的模式 Student Regno integer Sname string Degree string Age integer Course Coursecode string Cname string Cred
  • 如何访问 Cloud Firestore 规则内的自定义声明?

    我有一个用户具有以下自定义用户声明 customClaims role admin 如何在云 Firestore 规则中访问此角色属性 管理员 我正在使用下面的代码 但它不起作用 需要做什么才能工作 match companies docu
  • apache2 和 mod wsgi:目标 WSGI 脚本无法作为 Python 模块加载

    我正在尝试在 ubuntu 上的 apache2 上安装 mod wsgi 所以我安装了libapache2 mod wsgi包 我用a2enmod激活他 我有一个网站 languageAnalyz 我试图将其与 mod wsgi 一起使用
  • 判断鼠标是否在控件上? (在控制像素范围内)

    我正在尝试编写一个函数来确定鼠标是否超出像素范围 特定控件的像素范围 问题是该函数仅适用于Form 不适用于我测试过的按钮或任何其他控件 我缺少什么