你如何在Winforms Designer中设置组合框的默认值?

11

我正在使用Visual Studio 2010以C#编写Windows Forms应用程序。它有一个组合框。我已将DropDownStyle设置为DropDownList,并添加了一些行到Items

问题:是否有任何方法可以在“属性”编辑器中设置SelectedItemIndex,以便当组合框出现时,Items集合中的该行将显示为默认值?

我知道我可以在我的Form_Load方法中以编程方式设置myComboBox.SelectedItemIndex = NNN,但我肯定在MSVS IDE中也有某种方法可以实现。

有什么想法吗?

3个回答

7
我不确定这是否是你所要求的,但是如果你想要将特定项目设置为默认值,即在加载表单时已经有一个选中的值。
只需将以下内容放入您的public Form1() 方法中即可。
comboBox1.SelectedItem = "Test1"; 
//comboBox1 change to the name of 
//your combobox
//Test1 change to the item in your list of items that you want 
//defaulted.

我认为这是迄今为止最好的方法。

4
你好 - 感谢回复。不幸的是,那就是我在问题中提到的"编程解决方法"。我正在寻找一些可以在IDE属性编辑器中配置的内容,设计时可用的功能。Delphi IDE允许你编辑“ItemIndex”属性来设置ComboBox的默认值。我希望MSVS IDE有一些等效的设计时功能。 - paulsm4
谢谢。我也在 MSDN 上提问了 - 如果我找到解决方案,我会回来发帖的:http://social.msdn.microsoft.com/Forums/en/vswpfdesigner/thread/a424deca-98f9-4b4d-8214-27421be1d6de 否则,看起来我的答案是“不行”。再次感谢 - 我很感激 :) - paulsm4
到目前为止,MSDN还没有回应 :( 除了在我的form_Load()方法中手动设置"comboBox1.SelectedIndex = NNN"之外,我还不得不手动设置"comboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged;"以防止事件在我完成所有"OnLoad"设置之前过早触发。 - paulsm4
4
这个问题真是让人恼火——你可以设置属性中的项目,但却不能设置索引?虽然在初始化中只需一行代码,但仍感觉混乱不堪。对着微软摇拳头 - ace

1
你可以在“属性”窗口中设置“ComboBox”的“Text”属性,将你想要作为默认值的集合中的一个值设置为默认值。

enter image description here

然而,这将需要DropDownStyleDropDown,并使您的ComboBox可编辑。

如果这对您更可接受,并且您仍想使其不可编辑,您可以按以下方式覆盖ComboBoxKeyPress事件。

    private void comboBox_KeyPress(object sender, KeyPressEventArgs e)
    {
        e.Handled = true;
    }

0

不确定是否能够实现完全相同的功能,但是Visual Studio提供了一种通过其应用程序设置存储值的方式,从而可以实现以下两个目标:

  1. 在用户首次打开表单时(注意:仅适用于第一次),设置默认值。
  2. 保存用户最后一次选择,下次用户打开表单时,自动反映他的最后一次选择,这是非常好的用户体验。

选择ComboBox并打开其属性部分,在(应用程序设置)下选择(属性绑定),一旦ComboBox的应用程序设置打开,选择文本属性并创建一个应用程序设置。这将是用户第一次打开表单时默认选择的值,之后用户所做的任何选择都将在下次打开表单时反映出来。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接