winforms文本框Ctrl Backspace可删除整个单词和空格

winforms文本框Ctrl Backspace可删除整个单词和空格,winforms,textbox,backspace,ctrl,Winforms,Textbox,Backspace,Ctrl,我在这里找到一篇文章: 在按住ctrl+backspace键的同时删除文本框中的整个单词,但我注意到,如果不执行app.config这样的修改: <configuration> <appSettings> <add key="SendKeys" value="SendInput" /> </appSettings> </configuration> 只有当前字将被删除,退格过程将被中断。例如,如果我输入Tim tom,

我在这里找到一篇文章:

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

<configuration>
  <appSettings>
    <add key="SendKeys" value="SendInput" />
  </appSettings>
</configuration>
只有当前字将被删除,退格过程将被中断。例如,如果我输入Tim tom,然后使用ctrl+退格技巧,tom将被删除,中断任何退格操作并离开tom

但是,如果您确实使用app.config修改,tom将被成功删除,退格操作将继续,但不会继续删除整个单词,就像您只是按住退格按钮一样


有人知道这是什么原因或如何修复吗?

您的应用程序正在选择一种不同的行为,即向应用程序发送按键等价物

解释了这两个协议存在的历史原因:

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

这里提到的计时问题特别关注字符对应用程序的持续控制,而不仅仅是一次一个字符。包括

同步打字速率的困难 确保当应用程序打开对话框时,右窗口接收到输入 确保正确的应用程序即使在用户使用关闭按钮时也能收到输入 然而,SendKeys行为改变的真正原因不是程序员友好性没有显著提高,而是

设置SendKeys参数以指定所需的行为绝对是一个好主意。您不希望您的应用程序因为UAC被打开或关闭而神秘地开始以不同的方式运行