当列表项以与下拉项相同的文本开头时,如何设置ComboBox默认*不在下拉列表中?

时间:2009-06-21 06:32:25

标签: c# .net user-interface combobox

使用C#,假设您有一个将DropDownStyle设置为DropDown的ComboBox(下拉菜单中有项目,但用户也可以手动输入值)。如何在下拉列表中的值列表中为设置ComboBox的默认值,但以可能选择的文本开头?通常设置ComboBox.Text工作正常,但如果下拉列表中有开头的项目为默认文本,它会自动选择列表中以文本开头的第一个项目。例如:

下拉列表中的值:
c:\program files\
c:\windows\
d:\media\

默认值分配
myComboBox.Text = "C:\";

结果
表单打开时ComboBox的初始值为“c:\program files\”。

那么我做错了什么?如何正确设置不在下拉列表中以可能选择开头的项目的默认值?

3 个答案:

答案 0 :(得分:1)

我无法重复你所描述的行为。通过Items集合添加三个值,然后将初始值设置为“c:\”(顺便说一下,在代码示例中省略了@)工作正常。我的猜测是你的代码中的其他东西是在你设置它之后设置组合框的值。

答案 1 :(得分:1)

以下代码是否有效?

myCombo.SelectedIndex = myCombo.FindString(@"c:\");

注意:我没试过。查找可能有助于使用反射器的属性/方法。

答案 2 :(得分:0)

我能够让这个让ComboBox中的项目成为ComboBoxItems(我不明白为什么这不适用于其他类型)。像你一样设置ComboBox.Text并确保SelectedIndex = -1,你也需要IsEditable = True。