在开发时,对于Combox控件,我们会对Items预置一些值,同时希望显示一个默认值。Combox中没有默认index这样的选项,于是会想着在程序加载时设置Combox的SelectedIndex为一个值,比如3.这样程序启动后就会显示SelectedIndex=3的项。 但是没一个Combox都需要这么设置,不但麻烦,而且还容易搞混、漏掉或者出错,那有没有其他的办法呢? 当然是有的! 在Combox中还有一个属性是Text,我们只要将这个值设置为预置项中的某一项的值,程序启动时就会默认显示这个值。 那有人会担心,这样子设置的话,会不会是Text显示是OK了,但是SelectedIndex却不对应呢?我们可以看下面的代码和运行结果。 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace ComboxDefaultItem{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void buttonShow_Click(object sender, EventArgs e) { string info = string.Format("SelectedIndex:{0},Data:{1}",comboBox1.SelectedIndex,comboBox1.SelectedItem); MessageBox.Show(info); } }}
![](https://img-blog.csdn.net/20131206092638984?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHhkZGRhaWw=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20131206092810625?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHhkZGRhaWw=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
结果证明是不会的。这是因为Combox设置了Text之后,会自动索引到对应的项中。如果设置的Text不在预置项中,那么这时的SelectedIndex是-1,也就是没有索引到对应的项。