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