C# 无法在DropDownList的组合框中设置文本

C# 无法在DropDownList的组合框中设置文本,c#,winforms,C#,Winforms,我想在组合框中设置文本。下面是代码- 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

我想在组合框中设置文本。下面是代码-

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();
文档中说“它获取或设置在组合框的可编辑部分中选择的文本”。我无法让它对用户进行编辑


请提供任何解决方法。

这是因为当您使用
ComboBoxStyle.DropDownList
时,下拉列表没有可编辑的部分。要使其可编辑,请使用ComboBoxStyle.DropDown

还要注意与控件是否具有焦点相关的参数。您可能会发现
Text
属性更适合多种用途

编辑例如:

selectModel.Text = getModelNameFromConf();
假设组合在其列表中包含该值,设置
Text
也将设置下拉列表的
SelectedIndex
属性


(我认为此控件的某些属性名称特别容易混淆,包括
DropDown
DropDownList
。MS的某些人在对此控件进行编码时遇到了不愉快的一天。还要注意,单词选择有两种不同的使用方式:在这里,您希望设置所选项目,而
SelectedText
ns选中的某些文本可能不是整个项目文本。这与文本框中的情况相同,在文本框中,用户拖动鼠标高亮显示部分文本,但不是全部文本。)

它是Windows窗体应用程序吗?为什么要使用ASP.NET标记?
Text
属性?您能完整地编写它吗?我发现我可以使用
selectModel.SelectedIndex来更改当前项。我只想显示该项,它已经存在于
selectModel
中。假设,组合框包含d、b、c、a、e、k项。组合框显示的是d。现在我想显示c。我能做的一件事是先找出索引,然后设置,这是一点开销。相反,我想设置文本。@RaviJoshi我用这些点的信息扩展了我的答案。非常感谢。你的旁注非常有用:)