所以我有一个组合框 - 设计师代码:
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"});
}
如您所见,我试图让组合框具有不同的值。 事实上,我在设计师和组合框中的形式上都得到了什么。
我怎么能阻止这个?
我还有一个编辑功能,所以当我编辑一个记录时,我希望组合框由已保存的内容填充。
只是一个随机的问题,你能阻止用户输入一个不在组合框中的值吗?
三江源
答案 0 :(得分:5)
如果您想要替换当前内容,则需要致电
this.cmbStatusBox.Items.Clear();
在添加新值之前。
ComboBox
MSDN page
ComboBox.Items
MSDN page
DropDownStyle属性还指定是否可以编辑文本部分。
值为:
简单指定列表始终可见,文本部分可编辑。这意味着用户可以输入新值,而不仅限于在列表中选择现有值。
DropDown 指定通过单击向下箭头显示列表,并且文本部分是可编辑的。这意味着用户可以输入新值,而不仅限于在列表中选择现有值。使用此设置时,Append的AutoCompleteMode值与SuggestAppend值的作用相同。这是默认样式。
DropDownList 指定单击向下箭头显示列表,并且文本部分不可编辑。这意味着用户无法输入新值。只能选择列表中已有的值。仅当AutoCompleteMode为Suggest或SuggestAppend时才会显示该列表。
答案 1 :(得分:1)
只需从设计器代码中删除项目即可。