在开发时,对于Combox控件,我们会对Items预置一些值,同时希望显示一个默认值。Combox中没有默认index这样的选项,于是会想着在程序加载时设置Combox的SelectedIndex为一个值,比如3.这样程序启动后就会显示SelectedIndex=3的项。
但是没一个Combox都需要这么设置,不但麻烦,而且还容易搞混、漏掉或者出错,那有没有其他的办法呢?
当然是有的!
在Combox中还有一个属性是Text,我们只要将这个值设置为预置项中的某一项的值,程序启动时就会默认显示这个值。
那有人会担心,这样子设置的话,会不会是Text显示是OK了,但是SelectedIndex却不对应呢?我们可以看下面的代码和运行结果。
结果证明是不会的。这是因为Combox设置了Text之后,会自动索引到对应的项中。如果设置的Text不在预置项中,那么这时的SelectedIndex是-1,也就是没有索引到对应的项。
但是没一个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,也就是没有索引到对应的项。