Combobox人口问题

时间:2010-04-21 12:38:19

标签: c#

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

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

表单加载代码:

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

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

我怎么能阻止这个?

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

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

三江源

2 个答案:

答案 0 :(得分:5)

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

this.cmbStatusBox.Items.Clear();

在添加新值之前。

ComboBox MSDN page
ComboBox.Items MSDN page

  

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

Source

值为:

  

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

     

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

     

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

Source

答案 1 :(得分:1)

只需从设计器代码中删除项目即可。