2
A
回答
3
您可以設置DropDownStyle爲DropDownList,但並沒有真正讓打字(但它允許用鍵盤選擇)。
如果您確實希望用戶能夠鍵入/查看不完整的單詞,則必須使用事件。驗證事件將是最佳選擇。
3
如果您在用戶鍵入內容時設置了AutoCompleteMode = SuggestAppend
和AutoCompleteSource = ListItems
,則自動顯示以打字字符開頭的條目。
然後通過處理SelectedIndexChanged
或SelectedValueChanged
事件,您將能夠在用戶鍵入值列表中的某個值時截取。
如果你也絕對不希望用戶輸入任何東西,這不是在列表中,那麼是的,你必須處理例如KeyDown
事件,如:
private void comboBox1_KeyDown(object sender, KeyEventArgs e)
{
char ch = (char)e.KeyValue;
if (!char.IsControl(ch))
{
string newTxt = this.comboBox1.Text + ch;
bool found = false;
foreach (var item in this.comboBox1.Items)
{
string itemString = item.ToString();
if (itemString.StartsWith(newTxt, StringComparison.CurrentCultureIgnoreCase))
{
found = true;
break;
}
}
if (!found)
e.SuppressKeyPress = true;
}
}
+0
謝謝,我害怕我必須這樣做! – 2010-10-03 13:58:38
0
感謝。除了KeyDown事件代碼之外,上面的方法適用於我。因爲組合框附加到DataTable。如果將組合框附加到DataTable上,請嘗試下面的代碼,並且如果您也絕對不希望用戶鍵入不在列表中的任何內容。
private void cmbCountry_KeyDown(object sender, KeyEventArgs e)
{
char ch = (char)e.KeyValue;
if (!char.IsControl(ch))
{
string newTxt = this.cmbCountry.Text + ch;
bool found = false;
foreach (var item in cmbCountry.Items)
{
DataRowView row = item as DataRowView;
if (row != null)
{
string itemString = row.Row.ItemArray[0].ToString();
if (itemString.StartsWith(newTxt, StringComparison.CurrentCultureIgnoreCase))
{
found = true;
break;
}
}
else
e.SuppressKeyPress = true;
}
if (!found)
e.SuppressKeyPress = true;
}
}
相關問題
- 1. wxwidgets組合框在Windows上爲只讀
- 2. C#windows窗體組合框問題
- 3. Windows窗體組合框更改事件
- 4. Windows窗體組合框問題
- 5. 有問題的組合框Windows窗體
- 6. 用戶窗體組合框
- 7. 使Windows窗體控件只讀和IDisposable
- 8. 如何使Windows窗體控件只讀?
- 9. 動態添加組合框/文本框到DataGridView Windows窗體C#
- 10. 在Windows窗體中創建小時組合框和分鐘組合框
- 11. C#Windows窗體組合框數組代碼
- 12. 在Windows窗體應用程序中分組組合框項目
- 13. C#在Windows窗體中包含大型只讀數組
- 14. 實體框架只讀集合
- 15. 如何創建沒有Windows窗體的組合框
- 16. Windows窗體 - 將組合框分成兩部分
- 17. 當綁定組合框選擇時,Windows窗體凍結
- 18. 如何在Windows窗體中填充組合框c#
- 19. Windows窗體中的組合框Datagridview控件
- 20. 自定義Windows的外觀窗體組合框
- 21. 在Windows窗體C中使用TableLayoutPanel和動態組合框#
- 22. Windows窗體中的最大組合框項目
- 23. Windows窗體DataGridView將SelectedIndexChanged事件附加到組合框中
- 24. Windows窗體組合框自動同步;爲什麼?
- 25. C#Windows窗體在組合框中搜索特定值
- 26. 檢查組合框的值成員的值c#.net windows窗體
- 27. 如何使用Windows窗體顯示組合框中的項目?
- 28. Windows窗體組合框控件的奇怪行爲
- 29. Windows窗體組合框 - 多個屬性的數據綁定
- 30. C#Windows窗體組合框下拉目錄
謝謝!我只是想我可以不用自己編碼...猜猜我的另一個庫組件... – 2010-10-03 13:59:23