Combobox人口问题

sar*_*012 0 c#

所以我有一个组合框 - 设计师代码:

this.cmbStatusBox.Items.AddRange(new object[] {
    "Ordered",
    "Cooking",
    "In-transit",
    "Delivered"});
Run Code Online (Sandbox Code Playgroud)

表单加载代码:

if (mainForm.boolEdit == true)
    {
        this.cmbStatusBox.Items.AddRange(new object[] {
        "Cooking",
        "In-transit",
        "Delivered"});
    }
    else
    {
        this.cmbStatusBox.Items.AddRange(new object[] {
        "Ordered"});
    }
Run Code Online (Sandbox Code Playgroud)

如您所见,我试图让组合框具有不同的值.事实上,我在设计师和组合框中的形式上都得到了什么.

我怎么能阻止这个?

我也有一个编辑功能,所以当我编辑一个记录时,我希望组合框由已经保存的内容填充.

只是一个随机问题,你能阻止用户输入一个不在组合框中的值吗?

谢谢

Chr*_*isF 5

如果您想要替换当前内容,则需要致电

this.cmbStatusBox.Items.Clear();
Run Code Online (Sandbox Code Playgroud)

在添加新值之前.

ComboBoxMSDN页面
ComboBox.ItemsMSDN页面

DropDownStyle属性还指定是否可以编辑文本部分.

资源

价值观是:

简单指定列表始终可见,文本部分可编辑.这意味着用户可以输入新值,而不仅限于在列表中选择现有值.

DropDown指定通过单击向下箭头显示列表,并且文本部分是可编辑的.这意味着用户可以输入新值,而不仅限于在列表中选择现有值.使用此设置时,AutoCompleteModeAppend值与SuggestAppend值的作用相同.这是默认样式.

DropDownList指定通过单击向下箭头显示列表,并且文本部分不可编辑.这意味着用户无法输入新值.只能选择列表中已有的值.仅当AutoCompleteModeSuggestSuggestAppend时,才会显示该列表.

资源