我在这里找到了一篇文章:
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”将被成功删除,退格操作将继续,但不会继续删除整个单词,就好像你只是持有退格按钮。
是否有人知道导致此问题的原因或解决方法?
答案 0 :(得分:0)
您的应用程序正在选择向应用程序发送按键等效项的不同行为。
here:
解释了为什么存在这两个协议的历史说明已针对.NET Framework 3.0更新了SendKeys类 使其可以在Windows Vista上运行的应用程序中使用。增强 Windows Vista的安全性(称为用户帐户控制或UAC) 阻止先前的实现按预期工作。该 SendKeys类很容易受到时间问题的影响,一些开发人员 不得不解决。更新的实施仍然是 易受时间问题影响,但速度稍快,可能需要 改变了解决方法。 SendKeys类尝试使用 先前的实现,如果失败,则使用新的 实现。因此,SendKeys类可能表现不同 在不同的操作系统上。另外,当SendKeys类时 使用新的实现,SendWait方法不会等待 将消息发送到另一个进程时要处理的消息。
此处提到的时间问题尤其涉及通过字符继续控制应用程序,而不是一次只控制一个字符。它们包括
然而,SendKeys
行为改变之间的真正原因并非程序员友好性(没有显着改善),而是security。
设置SendKeys
参数以指定所需行为绝对是个好主意。您不希望您的应用程序因为UAC打开或关闭而神秘地开始表现不同。