簡體   English   中英

TextBox.Keypress不響應返回鍵

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM