SendKeys :: Send,be berserk

时间:2011-10-10 20:22:08

标签: .net c++-cli infinite-loop hang sendkeys

我正在尝试更新两个链接的TextBox es。我在一个中禁用事件,然后使用例如SendKeys::Send("A");首先给它焦点发送键击:

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");语句。

1 个答案:

答案 0 :(得分:5)

SendKeys将输入放入排队的消息队列中,因此在重新连接事件后将进行处理。因此,古怪。

我的建议是停止使用SendKeys更新您自己的控件的内容。只需直接修改文本框的内容即可。