Combox默认项设置的问题及解决方案

在开发时,对于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);
        }
    }
}



结果证明是不会的。这是因为Combox设置了Text之后,会自动索引到对应的项中。如果设置的Text不在预置项中,那么这时的SelectedIndex是-1,也就是没有索引到对应的项。
原文地址:https://www.cnblogs.com/sparkleDai/p/7605063.html