我想在组合框中设置文本。以下是代码 -
private System.Windows.Forms.ComboBox selectModel;
this.selectModel = new System.Windows.Forms.ComboBox();
this.selectModel.Name = "selectModel";
this.selectModel.FormattingEnabled = true;
this.selectModel.Size = new System.Drawing.Size(64, 21);
this.selectModel.Location = new System.Drawing.Point(3, 76);
this.selectModel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
以下行无效 -
selectModel.SelectedText = getModelNameFromConf();
文档说“它获取或设置在ComboBox的可编辑部分中选择的文本”。我不能让它对用户可编辑。
请解决任何问题。
答案 0 :(得分:1)
这是因为当您使用ComboBoxStyle.DropDownList
时,下拉菜单中没有可编辑的部分。要使其可编辑,请使用ComboBoxStyle.DropDown
。
另请注意与控件是否具有焦点有关的remarks on the SelectedText property。您可能会发现Text
属性更适合多种用途。
编辑例如:
selectModel.Text = getModelNameFromConf();
假设组合在其列表中包含该值,设置Text
也将设置下拉列表的SelectedIndex
属性。
(我认为这个控件的某些属性名称特别令人困惑,包括DropDown
与DropDownList
。在MS控制编码时,MS的某个人有一个糟糕的日子。请注意这个词选择以两种不同的方式使用:在这里,您要设置所选项目,而SelectedText
表示选择的某些文本 - 可能不是整个项目文本。这与用户拖动鼠标以突出显示某些文本但不是全部文本的文本框相同。)