簡體   English   中英

如何在KeyDown事件期間捕獲文本框的文本?

[英]How do I capture the Text of a TextBox during a KeyDown event?

我正在嘗試編寫一個根據textbox的內容過濾ListBox的頁面。 我已經完成了所有其他工作,但是我希望ListBox將過濾器應用於TextBox中發生的每個KeyDown事件。 問題是,當我捕獲KeyDown事件,然后嘗試查看TextBox.Text屬性時,它保持為空。 我認為這是由於TextBox僅在失去焦點時才可能更新Text屬性。

我如何能得到在當前文本的任何想法TextBox期間KeyDown事件,而不具備獲得每個重建期間的字符數組KeyDown

謝謝!

手冊

對於鍵盤輸入,WPF首先發送適當的KeyDown / KeyUp事件。 如果未處理這些事件,並且鍵是文本鍵(而不是控制鍵,如方向箭頭或功能鍵),則會引發TextInput事件。

在KeyDown事件中,您可以捕獲按下的鍵:

private void OnKeyDownHandler(object sender, KeyEventArgs e)
{
    Console.WriteLine(e.Key);
}

事件退出后,按下的鍵將添加到.Text屬性,因此下次引發KeyDown事件時,您可以從.Text讀取先前輸入的字符。

private void OnKeyUpHandler(object sender, KeyEventArgs e)
{
    var tb = sender as TextBox;
    if (tb != null){

       MessageBox.Show(tb.Text);
     }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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