![](/img/trans.png)
[英]TextBox.KeyPress event is missing the most recent key pressed? Huh?
[英]TextBox.Keypress doesn't respond to return key
我有一個帶有各種文本框的表單。 一個文本框用於輸入浮點數,因此我使用TextBox.KeyPress依次處理每個數字,這僅修改了Text屬性。 文本由一個例程處理,該例程在按下“確定”按鈕時被關閉(在關閉表單之前)。 TextBox.Leave事件也調用它。 但是,如果我更改了文本框的內容,則按返回變量不會更新。
我以為我可以通過以下方法克服這一問題:
private void DestPointNoTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Return)
{
prvUpdateDestPointNo();
}
}
只要在文本框處於焦點狀態時按下任何鍵,就會調用此方法,這可以通過在其中設置斷點來證明。 但是,在按Return鍵時不會調用它。
有人可以解釋一下按回車鍵時如何確保處理新文本嗎? 如果我更改其中一個的內容,請單擊“確定”按鈕。
如果您使用的是Windows窗體應用程序,則可以將窗體的AcceptButton屬性設置為“確定”按鈕,當您按Enter / Return鍵時,將觸發“確定”按鈕的Click事件。
我將使用調試器在運行時確定e.KeyCode
的值。
為什么?
當我運行類似的代碼(Winforms TextBox,注冊了KeyDown)時,e.KeyCode的值是
e.KeyCode = LButton | MButton | Back
您可以使用的KeyEventArgs
另一個屬性是KeyValue
private void DestPointNoTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
prvUpdateDestPointNo();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.