【问题标题】:Unable to set Text in Combox Box in DropDownList无法在 DropDownList 的组合框中设置文本
【发布时间】:2014-09-01 19:26:21
【问题描述】:

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

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 的可编辑部分中选择的文本”。我无法使其对用户可编辑。

请提供任何解决方法。

【问题讨论】:

  • 它是 Windows 窗体应用程序吗?为什么是 ASP.NET 标签?

标签: c# winforms


【解决方案1】:

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

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

编辑例如:

selectModel.Text = getModelNameFromConf();

假设组合在其列表中包含该值,设置Text 还将设置下拉列表的SelectedIndex 属性。

(我认为此控件的某些属性名称特别令人困惑,包括 DropDownDropDownList。MS 的某个人在编写此控件时遇到了糟糕的一天。还要注意单词 selection 以两种不同的方式使用:在这里,您要设置选定的项目,而 SelectedText 表示选定的某些文本 - 这可能不是项目文本的全部。这与一个文本框,用户在其中拖动鼠标以突出显示部分文本,但不是全部。)

【讨论】:

  • Text 财产?请问可以完整写吗?我观察到我可以使用selectModel.SelectedIndex 更改当前项目。我只是想显示已经存在于selectModel 中的项目。假设,组合框包含 d,b,c,a,e,k 项。组合框正在显示 d。现在我想显示 c。我可以做的一件事是先找出索引然后设置,这很少有开销。而不是它,我想设置文本。
  • @RaviJoshi 我已经用关于这些点的信息扩展了我的答案。
  • 非常感谢。你的旁注非常有用:)
猜你喜欢
  • 1970-01-01
  • 2019-07-10
  • 2012-04-03
  • 2015-07-21
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2010-11-28
  • 1970-01-01
相关资源
最近更新 更多