2011-03-03 41 views
2

我試圖檢測用戶何時按下某個文本框中的某些按鍵,然後我想根據其按鍵增加或減少文本中的值並取消所按的按鍵。取消部分不起作用。我習慣於把KeyCode = 0,如果我想取消他們的按鍵,就像我在MS Access中一樣。但是,這在VB6中並不適用於我。加號進入文本框。VB6 KeyDown無法取消按鍵

有什麼建議嗎?

回答

6

我想說忽略KeyDown事件,只是使用KeyPress事件:

Private Sub RTB_KeyPress(KeyAscii As Integer) 

    ' "Cancel" the keystroke 
    KeyAscii = 0 

End Sub 

做你正在做的事情最好的辦法,但是,將是你的窗體的KeyPreview屬性設置爲True,然後爲表單的KeyPress事件添加一個處理程序 - 這意味着表單首先有機會處理任何按鍵。通過在此處理並取消,您可以根據需要更改文本框中的文本。

我用我的職業生涯的前10年的Visual Basic,但我不得不穀歌上述代碼。我建議至少轉向VB.NET--有時甚至可以將VB6項目導入.NET(有時)。

+0

謝謝。我目前正在轉向VB.NET。只是還沒有。 :)我認爲這需要我的工作很多痛苦。當我將它與我在VB.NET例子中看到的一些東西進行比較時,這個VB6東西似乎是勞動密集型的。 – HK1

+0

我做了一年的VB.NET,然後C#5 - 6年。 C#起初很困難,但我很快就學會了一個相對嚴格的編譯器的好處。在.NET.NET Visual Basic中編寫簡單,乾淨,可靠的代碼是可能的,但語言/框架完全不能幫助您達到目的。 – MusiGenesis