从C# Combobox中选择默认项

44

我有一个 ComboBox 的项集合,我想从列表中选择一个项并将其设置为默认项 - 当应用程序启动时,这个项已经在 comboBox 中。

我正在尝试类似这样的东西:

SelectPrint11.SelectedIndex=2;

但是出现了错误:

System.ArgumentOutOfRangeException: InvalidArgument=Value of '2' is not valid for 'SelectedIndex'

编辑:

mylist中有3个项目:Printer1Printer2Printer3。所有项目都添加在ComboBox属性 -> 项目 -> 集合中。


执行该代码时,您确定您的 ComboBox 中有 三个 (!) 项吗? - Daniel Hilgarth
1
尝试使用 comboBox1.SelectedIndex = comboBox1.Items.Count - 1; - V4Vendetta
7个回答

92

您可以使用SelectedIndex进行设置。

comboBox1.SelectedIndex= 1;

或者

SelectedItem

comboBox1.SelectedItem = "your value"; // 

如果在组合框中没有该值,后者不会抛出异常。

编辑

如果要选择的值不是特定的,则最好使用此选项。

comboBox1.SelectedIndex = comboBox1.Items.Count - 1;

19
如果你正在使用SelectedIndex属性,计数从0开始,而不是1。 - user3141031
1
comboBox1.SelectedIndex = comboBox1.Items.IndexOf("itemName");将“itemName”文本的下标赋值给comboBox1控件的选中项。 - Luke

8

请记住,C#中的集合是从零开始计数的(也就是说,集合中的第一个项目位于位置)。如果您的列表中有两个项目,并且您想选择最后一个项目,请使用SelectedIndex = 1


3
private void comboBox_Loaded(object sender, RoutedEventArgs e)
{
 Combobox.selectedIndex= your index;
}

如果您想在比较后在组合框中显示某个值

 foreach (var item in comboBox.Items)
            {
                if (item.ToString().ToLower().Equals("your item in lower"))
                {
                    comboBox.SelectedValue = item;
                }
            }

希望这能有所帮助,对我起了作用。


2
这意味着您选择的索引超出了组合框中项目数组的范围。组合框中的项目数组是以零为基础,所以如果您有2个项目,则为项目0和项目1。

2

这是正确的表单:

comboBox1.Text = comboBox1.Items[0].ToString();

欢迎您


0

首先,进入包含comboBox的表单加载页面,

然后尝试使用以下代码:

comboBox1.SelectedValue = 0; //显示您集合中的第一项


-1
    ComboBox1.Text = ComboBox1.Items(0).ToString

这段代码展示了在Vb.net中如何显示Combobox1的第一个项目


ComboBox1.Text = ComboBox1.Items(0).ToString(); ComboBox1的文本 = ComboBox1的项(0).ToString(); - AmanAgrawalTech
在C#请求中有具体的内容。对某些人有帮助,但并没有回答问题。 - ransems

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