鼠标悬停控件并显示其手柄

2024-04-12

我知道,我可以编写一个函数作为表单中每个组件的事件来执行某些操作(例如,当鼠标悬停时)。 是否也可以在不将事件链接到特定组件的情况下调用事件函数,而是为应用程序中的所有组件调用事件函数?

我想要实现的是显示例如只需将鼠标悬停在任何组件上即可获取句柄 (Control.Handle) 或有关任何组件的更多信息。

提前致谢。


您可以动态地为表单中的所有控件设置事件,例如:

private ToolTip ToolTip = new ToolTip();

public FormTest()
{
  InitializeComponent();
  AddMouseHoverEvents(this, true, ShowControlInfo);
  ToolTip.ShowAlways = true;
}
private void ShowControlInfo(object sender, EventArgs e)
{
  var control = sender as Control;
  if ( control == null ) return;
  ToolTip.SetToolTip(control, control.Handle.ToString());
}
private void AddMouseHoverEvents(Control control, bool recurse, EventHandler action)
{
  if ( !recurse )
    Controls.OfType<Control>().ToList().ForEach(item => item.MouseHover += action);
  else
    foreach ( Control item in control.Controls )
    {
      item.MouseHover += action;
      if ( item.Controls.Count > 0 )
        AddMouseHoverEvents(item, recurse, action);
    }
}
private void RemoveMouseHoverEvents(Control control, bool recurse, EventHandler action)
{
  ToolTip.RemoveAll();
  if ( !recurse )
    Controls.OfType<Control>().ToList().ForEach(item => item.MouseHover -= action);
  else
    foreach ( Control item in control.Controls )
    {
      item.MouseHover -= action;
      if ( item.Controls.Count > 0 )
        RemoveMouseHoverEvents(item, recurse, action);
    }
}

您可以显示您需要的任何信息或显示您想要的任何弹出框而不是工具提示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

鼠标悬停控件并显示其手柄 的相关文章

随机推荐

  • HTML 元素的“默认操作”是否有标准资源? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想知道是否有一个定义的标准来定义各种 HTML 元素的默认操作 我看过W3C 的 HTML 规范 h
  • 宏扩展可以包含(声明...)表达式吗?

    Common Lisp Hyperspec 规定 宏形式不能扩展为声明 声明表达式必须显示为它们引用的形式的实际子表达式 我对 扩展到 的含义感到困惑 由于显而易见的原因 如下宏将不起作用 defmacro optimize fully d
  • 如何将 rustc 标志传递给货物?

    我正在尝试禁用死代码警告 我尝试了以下方法 cargo build A dead code rla git master 货物构建 A dead code 错误 参数无效 所以我想知道如何将 rustc 参数传递给 Cargo 您可以通过几
  • 如何根据两个值对列表进行排序

    我有一个列表 我想根据两个值日期和状态进行排序 如下所示 pollsList sort a b gt b active compareTo a active pollsList sort a b return b actualStartDa
  • AnimationTimer 是否在自己的线程中运行?

    JavaFX 是否有AnimationTimer启动时在单独的线程上运行 我在调试器中运行了一个 JavaFX 应用程序 有或没有AnimationTimer 并且在这两种情况下都有 6 个线程在运行 另外 JavaDocs 没有提到它的实
  • 正则表达式在句点后添加空格,但当句点表示小数或字母缩写时不添加空格?

    以简单的方式使用 php regexp 是否可以修改字符串以在单词后面的句点之后添加空格 但不能在前后有数字 例如 1 00 的句点之后添加空格 我还需要它来忽略单字母缩写 例如 N Y String Looks like this Wit
  • Java非常大的堆大小[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有人有在 Java 中使用非常大的堆 12 GB 或更大 的经验吗 GC 是否会使程序无法使用 您使用什么 GC 参数 Sun 或 B
  • plantUML:泳道和重叠连接器

    我正在使用 plantUML 泳道来可视化内部流程 但不幸的是 当我想要显示已执行和分离的流程时遇到重叠线 我正在使用这个 startuml title something dee4e8 p1 c4c9cd p2 daf0fe Backen
  • 如何在空手道中运行单个场景?

    为了测试空手道的特定功能 我运行 mvn test Dkarate options classpath myfeature feature 有没有办法运行定义到功能中的单个场景 是的 您可以通过标签 https github com int
  • 仅获取用户媒体(照片) - Twitter API

    使用 Twitter API V1 1 是否可以检索用户发布的照片 我可以看到 执行此操作的一种方法是拉动用户的时间线include entities true并以这种方式搜索照片 但这似乎是一种极其麻烦的方法 而且容易出现问题 例如 我们
  • 如何在项目中实现预编译头

    我了解预编译头背后的目的和推理 然而 实施时有哪些规则呢 根据我的理解 事情是这样的 将您的项目设置为使用带有 YU 指令的预编译头 创建 stdafx h 文件并将其设置为预编译头 将此作为每个 h 文件中的顶部包含语句 这是正确的吗 您
  • 如何确认邮件已送达或未送达?

    下面是我的代码 大家看一下 System Net Mail MailMessage oMail new System Net Mail MailMessage System Net Mail SmtpClient smtp new Syst
  • 阶乘的最低有效非零数字

    我正在尝试计算阶乘中最低有效的非零数字 我有以下片段 document ready function submit click function var n number val get result n function get resu
  • PHP .htaccess -> 漂亮的 url(相反)

    我知道如何进行 URL 重写 例如 www example com index php id 1 cat 3 to www example com 1 3 管他呢 我知道 我不知道到底如何更改所有页面中的整个链接以链接到漂亮的 URL 我网
  • Angular 2 RxJS Observable:重试,429 状态除外

    我已经编写了 Observable 来自 HTTP 请求 以在失败时重试 不过 我想not如果服务器响应为重试429 Too many requests error 无论如何 当前的实现都会重试两次 间隔 1 秒 return this h
  • Xdebug 错误的 Zend API 版本号

    我在升级 MAMP 的 xdebug 时遇到问题 我运行的是 2 2 0 版本 遇到了一个已知问题 PhpStorm 和 Xdebug 在 Symfony2 控制器中没有中断 https stackoverflow com question
  • 如何在量角器中重新运行失败的黄瓜场景?

    作为测试的一部分 我使用打字稿语言来开发与量角器兼容的代码 我使用 BDD 框架 其中我在 config ts 中定义了一些黄瓜选项 如下所示 capabilities specs example feature cucumberOpts
  • 我应该如何使用 Outlook 发送代码片段?

    作为一家大公司的程序员 我经常发送包含代码示例的 Outlook 电子邮件 实际上 我会直接在电子邮件中输入代码 这不可避免地会导致问题 因为 Outlook 确实喜欢以令人愉悦但无益的方式设置文本格式 我的代码需要可以从电子邮件中复制出来
  • 快速显示图像UIImageview

    如何在 UIImageview 中显示图像 然后根据按下的按钮更改图像 我很新 请放轻松 为此 首先确保视图控制器中具有可用的图像 通过在故事板上的图像和视图控制器中创建图像之间的关联 我们假设它名为 imageView 通过编程 您可以说
  • 鼠标悬停控件并显示其手柄

    我知道 我可以编写一个函数作为表单中每个组件的事件来执行某些操作 例如 当鼠标悬停时 是否也可以在不将事件链接到特定组件的情况下调用事件函数 而是为应用程序中的所有组件调用事件函数 我想要实现的是显示例如只需将鼠标悬停在任何组件上即可获取句