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