1
我正在尝试更新两个链接的TextBox
es。我禁用一个事件,然后发送使用如SendKeys::Send("A");
按键具有先给予其焦点:SendKeys ::发送,将要疯狂
texBox2->Focus();
texBox2->KeyDown -= gcnew KeyEventHandler(this, &Form1::texBox2_KeyDown);
SendKeys::Send("A");
texBox2->KeyDown += gcnew KeyEventHandler(this, &Form1::texBox2_KeyDown);
它几乎的作品,但,是完全的心理,而不是重复的字符(我不敢看检查,因为它的确切的关键我疯狂地扑灭溢出)直到我按下control-alt-del。其他键没有任何效果,鼠标冻结。但任务经理奇迹般地恢复了我的控制权,我不会停止或杀死任何东西。
任何人都可以建议吗?调试器挂在该SendKeys::Send("A");
语句。
直接修改大的不可变字符串会导致闪烁,我发现SendWait方法更有希望。我在每个处理程序中设置了一个中断点,并且在'无限'循环中并没有打断他们。 – John
假设这是WinForms,那么你可以通过使用WM_SETSEL的windows api来廉价追加字符。可能有一个.net的方式来做到这一点。重新分配整个字符串是不好的,但SendKeys更糟糕。使用WM_SETSEL是我的重点。 –
但是你有多好。在对SendWait初步满意之后,更加诡异。整个屏幕(不只是文本框)闪烁,如果我按住一个按键,它会出现不合适的地方,因为我正在以编程方式更新第二个按键。没有大规模循环虽然:)感谢WM_SETSEL提示大卫 – John