TreeView 重新获得 Ctrl+Click 的焦点

2023-12-06

我有一个 WinForms TreeView 控件,我想用它来根据当前选择的节点打开另一个窗体。我想在按住 Ctrl 键并单击节点时打开另一个窗体。

目前,如果我在 DoubleClick 处理程序中打开另一个表单(显然是双击该节点),它就会按照我想要的方式工作;但是,如果我使用 Click(或 MouseClick)处理程序并在按下 Control 键时打开另一个窗体,它将正确打开另一个窗体,但将焦点返回到原始窗体。

打开另一个表单后,如何保持焦点不返回到原始表单(我仍然想保持打开状态)?为什么 Click 和 DoubleClick 处理程序之间有不同的行为?


事件返回后,TreeView 夺回焦点。很烦人。您可以使用一个技巧:使用 Control.BeginInvoke 延迟事件的操作:

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) {
  this.BeginInvoke(new TreeNodeMouseClickEventHandler(delayedClick), sender, e);
}
private void delayedClick(object sender, TreeNodeMouseClickEventArgs e) {
  // Now do your thing...
}

一旦 TreeView 的所有事件完成运行并且您的程序进入空闲状态并重新进入消息循环,delayedClick 方法就会运行。

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

TreeView 重新获得 Ctrl+Click 的焦点 的相关文章

  • C# - Winamp 风格 3 窗口捕捉应用程序

    如何在 C 和 net 2 0 中创建 Winamp 风格的多表单捕捉应用程序 Easy 创建三个表格 添加代码以自定义绘制一切在这三种形式上 添加逻辑来处理用户在任何表单上的任意位置单击和拖动 以便窗口正常移动 直到它与您自己的另一个表单
  • 如何将DataGridView与SqlDataReader绑定

    任何人都可以在这段代码中帮助我吗 我正在尝试将数据与 datagridview 绑定 查询在 sql server 中返回值 但它没有绑定 DataGridView 中的任何值 private void CheckMembers try s
  • javascript - 自动点击 Netflix 互动电影选择

    我正在寻找一种方法 可以自动点击一些 Netflix 电影中的交互选项 我尝试了很多方法 但似乎只有焦点事件有效 document getElementsByClassName BranchingInteractiveScene choic
  • 如何在单击 DatagridView 中的另一个复选框列时禁用复选框列

    我有两个 ckecbox 错误和启用 如下所示 如果我取消选中 启用 复选框 相应的 错误 复选框将变为灰色 我尝试了如下但没有启用或禁用属性 void dgRulesMaster CellContentClick object sende
  • WinForms 验证事件阻止 Escape 键关闭表单

    我有一个简单的表单 带有一个文本框 加上 确定 和 取消 按钮 表单的 AcceptButton 和 CancelButton 设置正确 并且 确定 和 取消 按钮的 DialogResult 设置为 确定 和 取消 我想向 TextBox
  • 跨线程操作在BackgroundWorker中无效

    我想在数据网格视图中显示有关表单加载的一些数据 我想要显示的数据有大量行 当我使用后台工作处理器时 它向我显示以下错误 My code private void backgroundWorker1 DoWork object sender
  • 滚动时在面板中平滑地绘制或绘制子控件

    在使用 Tab 控件的 TabPage 中的 Panel 控件时 我有很多子控件 如 RichTextBox 按钮 标签等 问题是当我在面板中滚动时 内部会闪烁 子控件没有像它们已经存在一样顺利地显示 淹没 绘制 寻找可以使滚动平滑并消除闪
  • 如何更改选项卡控件的名称

    我在 C WinForms 应用程序中使用选项卡控件 我想更改选项卡的标题 默认情况下它们是 tabPage1 tabPage2 等 一种无需代码即可实现的懒惰方法 选择选项卡控件 Go to properties use F4 to do
  • 在 C# WinForms 中预览文档(Word、Excel、PDF、文本文件等)?

    我正在开发一个 C WinForms 应用程序 我希望能够 预览 其中的各种文档类型 也就是说 当用户从列表中选择文件名时 它会在下面以相同的形式显示所选文件的预览 这很像 Outlook 允许您无需双击即可预览选定邮件的方式 有没有什么方
  • 如何在运行时添加到 TreeView 目录

    我有一个TreeView我想允许用户添加和删除子项目 在探索基本功能时 我使用button and a textbox添加此子项 当用户点击button a new TreeViewItem需要创建并设置为我的父项的子项TreeView与t
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写
  • 卸载以前的版本安装新版本的安装项目

    我创建了一个安装项目并安装在Windows系统中 在安装安装项目之前 我将其设置为 DetectNewInstallerVersion true and RemovePreviousVersion True 我也每次都换版本 但是 如果我重
  • 如何防止打印屏幕

    我有一个要求 我正在开发的应用程序阻止用户轻松捕获屏幕内容 我已经表示 没有可行的方法可以完全防止这种情况发生 但我正在寻找方法来为这一过程引入一些障碍 我正在使用 C NET 2 0 和 WinForms 你不能 您能做的最好的事情就是在
  • 在 VB2010 Windows 窗体开始时播放 .wav/.mp3 文件?

    制作 VB2010 已经大约一年了 最近开始突破我可以将哪种媒体合并到我的表单中的界限 但我无法播放 wav 或 mp3 文件 我尝试按照微软和其他编码网站上的教程进行操作 但没有成功 任何帮助 将不胜感激 要播放波形文件 您可以简单地使用
  • 关闭 XDOCUMENT 的实例

    我收到这个错误 该进程无法访问文件 C test Person xml 因为它是 被另一个进程使用 IOException 未处理 保存文件内容后如何关闭 xml 文件的实例 using System using System Collec
  • JavaScript:从 JavaScript 调用锚标记的点击事件

    我有一个带有锚标记的页面 在我的 JavaScript 中 我设置HREF锚标记的属性基于一些 if else 条件动态变化 现在我想以编程方式调用锚标记的单击事件 我使用了下面的代码 但没有成功 var proxyImgSrc CostM
  • ClickOnce 应用程序错误:部署和应用程序没有匹配的安全区域

    我在 IE 中使用 FireFox 和 Chrome 的 ClickOnce 应用程序时遇到问题 它工作正常 异常的详细信息是 PLATFORM VERSION INFO Windows 6 1 7600 0 Win32NT Common
  • 获取 FTP 服务器上的文件大小并将其放在标签上

    我正在尝试获取托管在FTP服务器并将其放入Label而 BackgroundWorker 在后台工作 我在用着 Try 来获取该值 但是该值在第一次尝试时被捕获 下载后 如果我按尝试再次获取它 那么它就可以工作 Note 第一次尝试时进度条

随机推荐

  • 转换为表后如何获取 VARRAY 项的索引

    在下面的示例中 我创建了一个包含 3 个项目的 VARRAY TEST XE gt select t1 t2 from 2 select X as t1 from dual UNION select Y from dual t1 3 tab
  • Java 的 UUID.nameUUIDFromBytes 用 Ja​​vaScript 编写?

    我有一个我无法控制的使用 Java 的第三方应用程序UUID nameUUIDFromBytes创建一个字符串 我需要重现这个用 JS 编写的函数 In OpenJDK的源码我找到了这个 public static UUID nameUUI
  • 泛型和 Marshal/UnMarshal。我在这里缺少什么?

    最好提一下这一点 我正在使用 Delphi XE2 但 XE 或 2010 也应该可以解决问题 此问题现已位于质量中心QC 99313请投票 截至 2011 年 10 月 20 日 Embarcadero 已将 QC 报告标记为 已解决 S
  • 使用 DatePicker 选择多个日期

    我正在尝试创建一个选择多个日期的 DatePicker 我可以选择多个日期 但我想在选择它们时保持 DatePicker 打开 问题是 每次我选择日期时 DatePicker 都会关闭 我不想使用私有 API 我正在考虑添加这个 dateP
  • 为什么 HTML 认为“chucknorris”是一种颜色?

    为什么某些随机字符串在 HTML 中作为背景颜色输入时会产生颜色 例如 bgcolor chucknorris 产生一个红色背景 test 反过来 bgcolor chucknorr 产生一个黄色背景 test 这在各种浏览器和平台上都是如
  • 无法显示 AdMob 横幅、收到错误 HTTP 响应代码:400 等

    无论我做什么 我都无法显示来自 Admob 的横幅 我在两个不同的 Android 设备上进行了测试 以下是我得到的结果 第一个设备 I Ads 8161 Starting ad request I Ads 8161 Please set
  • 无法创建 deno docker 镜像

    我想创建deno使用 Dockerfile 生成 docker 镜像 FROM alpine latest WORKDIR RUN apk update apk upgrade RUN apk add curl RUN curl fsSL
  • 如何将 std::variant 的元素复制到另一个变体类型的变量

    这是后续这个答案 假设我们有两种类型std variant具有部分相同的成员类型 例如如果我们有 struct Monday struct Tuesday etc using WeekDay std variant
  • Snakemake - 下载数据的规则

    我在实现管道时遇到一些麻烦 其中第一步是从某个服务器下载数据 据我了解 所有规则都必须有文件输入 然而 在我的例子中 输入 是提供给访问服务器并下载数据的脚本的 ID 字符串 我知道远程文件Snakemake 中的选项 但我正在下载的服务器
  • 在同一场景上加载多个视频时 Unity 应用程序冻结

    从菜单导航到包含 8 个 1 分钟 MP4 视频的场景时 这些视频在 RawImage 组件上使用新的 VideoPlayer 脚本进行播放 我使用的是Unity 5 6 0b11测试版 在我尝试导航的场景中 预制件会在列表缩略图中加载视频
  • 保护 NodeJS 的 post 路由

    我正在开发一个 NodeJS 应用程序 到目前为止 我了解到您可以使用 JWT 保护路由 并且我已经实现了这一点 问题是 我不确定如何保护允许用户发帖的路由 我们以注册路由为例 该路由将用于用户注册 我希望用户能够发布此内容 但只能从我的应
  • Excel:使用 vba 添加评论作者

    当我手动向单元格添加注释 使用插入注释命令 时 文本前面会以粗体显示我的用户名 是否可以为创建的评论复制此特征vba using Range AddComment 对于运行宏的用户 您可以添加登录的用户名 用户名以粗体显示 如下所示 此示例
  • 如何让Flask跨两台不同的机器与Flask通信?

    我在一台机器上有一个 Flask 应用程序 在第二台机器上需要运行一些查询 第二台机器不渲染任何页面 它只是在第一个应用程序的幕后做一些事情 如果我在第二台计算机上创建 Flask 应用程序来控制这些查询 我如何从第一个应用程序与其进行通信
  • JS > FTP > 网页目录 > 文件列表

    是否可以使用 Javascript 调用对指定 URL 的 FTP 调用并检索此 Web 目录中的所有文件 假设您正在讨论浏览器中的 javascript 那么如果没有一些支持的服务器端代码 这是不可能的 您可以使用 javascript
  • 在 Windows 任务计划程序中更改已计划任务的运行时间

    我在修改机器上已存在的任务时遇到问题 我正在尝试使用 C 生成的互操作接口 从 system32 taskschd dll 生成的 Interop TaskScheduler dll 来执行此操作 首先 我无法使用其他库 例如http ta
  • Java try-finally返回设计问题

    在 Java 中 try finally 的执行对我来说有点不直观 正如另一个问题中所说明的 Java中finally总是执行吗 如果try块中有return语句 如果定义了finally块 它将被忽略 例如 函数 boolean test
  • Android:如何在应用程序中集成admob?

    我试图将 admob 横幅集成到我的应用程序中几个小时 但我做不到 所以我创建了新的应用程序 其唯一目的是显示 admob 横幅 但它也不起作用 这是代码 public class MainActivity extends Activity
  • 如何以编程方式从 Windows 手机访问 SMS 消息线程 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想访问 Windows Phone 上的所有消息并备份它或在 PC 手机上复制它 我搜索了这个 但无法在互联网上找到它 有没有可用的 API 来实现这一点 这仅适用于 Wind
  • Breezejs 与保存包有关的问题

    我使用breezejs 我的应用程序的服务器端代码是 net 在我看来 客户端 我想添加实体 然后我想保存它 让我们假设一个实体是这样的 Id 1 Name someName CreatedDate 1900 01 01T05 00 00Z
  • TreeView 重新获得 Ctrl+Click 的焦点

    我有一个 WinForms TreeView 控件 我想用它来根据当前选择的节点打开另一个窗体 我想在按住 Ctrl 键并单击节点时打开另一个窗体 目前 如果我在 DoubleClick 处理程序中打开另一个表单 显然是双击该节点 它就会按