我有一個WinForm中的文本框,並將文本框的AutoCompleteSource
設置爲CustomSource
。現在問題是相應地設置窗體中的其他字段,用戶從自動完成列表中選擇一個選項。
例如,我的自動完成列表包含"foo", "food", "foomatic"
。當用戶鍵入'f'
時,會顯示所有三個選項。用戶選擇"foo"
。並且表單中的下一個文本框會相應更改。如何完成這一點。
在此先感謝。當用戶爲文本框選擇一個正確的自動完成選項時設置其他字段
3
A
回答
1
當您沿着自動完成列表行進時,文本框觸發「向下」箭頭鍵的關鍵事件;它還將選定的項目文本設置爲文本框。您可以跟蹤向下鍵以設置其他字段。
或者,您可以捕捉「Enter」鍵,它提出的關鍵事件,如果用戶選擇在列表中按輸入項目鍵或鼠標點擊
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
//Check if the Text has changed and set the other fields. Reset the textchanged flag
Console.WriteLine("Enter Key:" + textBox1.Text);
}
else if (e.KeyCode == Keys.Down)
{
//Check if the Text has changed and set the other fields. Reset the textchanged flag
Console.WriteLine("Key Down:" + textBox1.Text);
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
//this event is fired first. Set a flag to record if the text changed.
Console.WriteLine("Text changed:" + textBox1.Text);
}
+0
這個解決方案不是我想要的,但的確是一個好方法。 –
1
我用組合框獲得此選項:
// Create datasource
List<string> lstAutoCompleteData = new List<string>() { "first name", "second name", "third name"};
// Bind datasource to combobox
cmb1.DataSource = lstAutoCompleteData;
// Make sure NOT to use DropDownList (!)
cmb1.DropDownStyle = ComboBoxStyle.DropDown;
// Display the autocomplete using the binded datasource
cmb1.AutoCompleteSource = AutoCompleteSource.ListItems;
// Only suggest, do not complete the name
cmb1.AutoCompleteMode = AutoCompleteMode.Suggest;
// Choose none of the items
cmb1.SelectedIndex = -1;
// Every selection (mouse or keyboard) will fire this event. :-)
cmb1.SelectedValueChanged += new EventHandler(cmbClientOwner_SelectedValueChanged);
目前,該事件是在選擇,即使它只是從自動完成彈出窗口的價值被解僱。 (如果選擇用鼠標或鍵盤進行並不重要)
相關問題
- 1. 當用戶選擇其他選項時添加另一個文本框
- 2. 選擇jQuery自動完成填寫其他字段
- 3. 使用jQuery-UI自動完成選擇選項時設置多個輸入值
- 4. 根據選擇框選項或自動完成選擇設置帶有JSON數據的文本輸入
- 5. 當下拉選擇時自動生成文本字段值
- 6. CodeMirror - 自動完成「選項」沒有設置正確
- 7. 當選擇一個選項時顯示一個文本框
- 8. 選擇自動完成框
- 9. 的CSS自動完成選擇選項
- 10. 通過選擇一個字段自動完成(自動填充)多個字段
- 11. 爲使用AJAX動態生成的選擇框設置精確選項
- 12. Jquery UI自動完成不會選擇所有字段文本
- 13. 當選擇其他字段的時間時,在一個字段上設置相同的時間
- 14. 當選擇框集中時設置多個選擇框選項的顏色
- 15. 當選擇一個選項時,jQuery顯示文本框
- 16. jQuery自動完成標籤,當選擇不同的字段值
- 17. 使用Rails自動完成並選擇正確的自動完成
- 18. 處理「其他」選項在下拉選擇與自由文本輸入字段
- 19. 當選擇其他項目時,從選擇框中添加和刪除選項
- 20. 當選擇一個項目時,AngularJS選擇框選項消失
- 21. 當用戶選擇一個選項卡時更改片段的位置android
- 22. 位置在選擇框頂部選擇了選擇框選項而沒有自動選擇第一個選項
- 23. Jquery自動完成 - 當選擇一個項目時,光標移動到開始
- 24. 從其他選擇框中選擇框中選擇框動態刪除選項,
- 25. 動態選擇菜單的自動完成文本字段版本?
- 26. 選擇一個複選框,選擇其他複選框
- 27. 根據另一個自動完成文本視圖的選擇自動設置文本
- 28. 當從組合框中選擇特定選項時自動隱藏文本框
- 29. 將文本字段設置爲選擇框
- 30. 過濾器其他選擇一個選項時選項
你不拿到在'TextChanged'事件? – V4Vendetta
每次用戶輸入新字符時,都會觸發'TextChanged'事件。但是我想要在用戶最終選擇一個選項時捕獲事件。 –
然後你可以選擇驗證或驗證,但我認爲你將不得不失去焦點 – V4Vendetta