我的項目是模擬Enigma機器,我需要一些幫助處理視覺界面。VB.NET - 如何讓文本框只接受每個按鍵一個字符?
在我的程序中,我需要一個文本框,用戶可以在其中輸入無限數量的字母。但是,該程序還根據輸入的文本更新其他組件,並顯示用戶的可視化表示。
例如,當我按下字母'A'時,程序將其編碼爲字母'S',並在界面中顯示圖像。但是,每次字母編碼時,該編碼都是唯一的。如你所知,當你長時間在鍵盤上按下一個字母時,它會一直寫下那封信。例如,如果我按住'A',在我的文本框中,我會以'AAAAAAAAAAAAAAAAAAAAAA'結尾,並且會在圖像顯示屏上對每一個'A'進行編碼。
我的問題是:如何限制文本框每個按鍵只能接受一個字母,但仍允許雙字母或三字母?所以我可以有一個相同字符的子字符串,只要我通過在鍵盤上反覆按鍵來輸入它們。
我需要這個,只要輸入字母被按下,編碼的字母就會亮起來。
是否需要支持或移除對控制字符的支持(例如箭頭鍵,退格鍵,刪除鍵)? –
它需要支持它們 – Jad
對於大多數情況下,簡單的'KeyUp'處理程序,如下面的答案中所示,就足夠了。然而,從技術上講,'KeyUp'事件並不保證在任何情況下都會觸發。例如,如果另一個窗口在按住鍵的同時接收到焦點,則「KeyUp」事件不會觸發。在那種情況下,下一個合法的按鍵最終會被忽略。如果這是一個問題,請看看[其他問答](http://stackoverflow.com/questions/4420981/stopping-keys-from-repeating-c),它有更徹底的解決方案。 –