2012-11-27 100 views
1

我在C#Windows窗體應用程序中有一個TextBox。我在使用TextChanged()事件的TextBox中使用建議作爲用戶類型。每次調用TextChanged()時,我都會動態創建AutoCompleteResoure。問題是:假設我在TextBox中鍵入「j」,並顯示3個結果,第二個建議是我想去的地方。當我按下鍵盤上的向下箭頭鍵轉到第二個建議時,所有建議都會被刪除,並且TextBox中的文本被更改爲第一個建議。這意味着我不能低於使用鍵盤的第一個建議,因爲按下向下鍵時,TextBox中的文本被建議代替,並且TextChanged()事件被調用,並且沒有其他建議。 如何使用鍵盤瀏覽所有建議? 我已將AutoCompeleteMode設置爲Suggest。 這是代碼。TextBox自動完成不正確顯示建議

private void searchTb_TextChanged(object sender, EventArgs e){ 
    AutoCompleteStringCollection resource = new AutoCompleteStringCollection(); 
    string searchTerm = (sender as TextBox).Text;  
    searchTb.AutoCompleteCustomSource = getResource(searchTerm); 
} 

我想,當用戶按下方向鍵,但沒有工作,消耗Key.Down事件。

回答

1

這應該工作..

//In KeyUp or Keypress or KeyDown Event 
if keypress == DownArrow or UpArrow 
    //Unhook TextChanged event 
else 
    //hook TextChanged event 

一旦看看這link了。 [主題相關]

+0

我想這一點。但沒有工作一些如何。 – Nitin

+0

你用'KeyUp'事件試過了嗎? –

+0

是的。這也是行不通的。 – Nitin

0

不使用TextChanged事件。它不應該在TextChanged事件中。您應該分配給它只有一次......而是在

Form_load中使用此代碼
private void Form1_Load(object sender, EventArgs e) 
{ 
    AutoCompleteStringCollection resource = new AutoCompleteStringCollection(); 
    string searchTerm = (sender as TextBox).Text;  
    searchTb.AutoCompleteCustomSource = getResource(searchTerm); 
} 

嘗試tis..Hope將YouHelp