【问题标题】:winforms textbox Ctrl-Backspace to Delete Whole Word & Spaceswinforms 文本框 Ctrl-Backspace 删除整个单词和空格
【发布时间】:2012-07-03 05:08:35
【问题描述】:

我在这里找到一篇文章:

Winforms Textbox - Using Ctrl-Backspace to Delete Whole Word

在按住 ctrl+backspace 的同时删除文本框中的整个单词,但我注意到如果您不执行 app.config 修改,如下所示:

<configuration>
  <appSettings>
    <add key="SendKeys" value="SendInput" />
  </appSettings>
</configuration>

只有当前单词将被删除,退格的过程将被中断。例如,如果我输入“Tim tom”然后使用 ctrl + backspace 技巧,“tom”将被删除,中断任何退格操作并留下“Tom”。

如果您确实使用 app.config 修改,但是,“tom”将被成功删除,退格操作将继续,但不会继续删除整个单词,就好像你只是拿着退格键。

有谁知道是什么原因造成的或如何解决?

【问题讨论】:

    标签: winforms textbox backspace ctrl


    【解决方案1】:

    您的应用正在选择一种不同的行为,即向应用发送按键等效项。

    这两种协议存在的历史解释解释here

    SendKeys 类已针对 .NET Framework 3.0 更新为 在 Windows Vista 上运行的应用程序中启用它。增强型 Windows Vista 的安全性(称为用户帐户控制或 UAC) 防止以前的实现按预期工作。这 SendKeys 类容易受到一些开发人员的时间问题的影响 不得不解决。更新后的实现仍在 容易受到时序问题的影响,但速度稍快,可能需要 变通方法的更改。 SendKeys 类尝试使用 首先是以前的实现,如果失败,则使用新的 执行。因此,SendKeys 类的行为可能会有所不同 在不同的操作系统上。此外,当 SendKeys 类 使用新的实现,SendWait 方法不会等待 当消息被发送到另一个进程时要处理的消息。

    这里提到的时间问题尤其关注角色对应用程序的持续控制,而不仅仅是一次一个角色。它们包括

    • 打字速度同步困难
    • 确保在应用打开对话框时正确的窗口接收输入
    • 确保正确的应用接收输入,即使用户干预关闭按钮也是如此

    然而,SendKeys 行为改变之间的真正原因不是程序员友好性(没有显着改善),而是security

    设置SendKeys 参数来指定所需的行为绝对是一个好主意。您不希望您的应用程序仅仅因为打开或关闭 UAC 就神秘地开始表现不同。

    【讨论】:

      猜你喜欢
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多