如何显示组合框消息

时间:2016-10-26 12:04:10

标签: c# visual-studio-2013

我正在寻求一些帮助或建议。我试图在一个组合框中添加一条消息,提示用户进行选择。我读过的所有内容都是使用this.comboboxname.Text = "Message"

但是我在几个不同的地方试过这个,但它似乎不适用于我的代码。

我想知道我是否错过了一些明显的东西。有什么建议吗?

代码:

namespace DatabaseConnection
{
  public partial class MainWindow : Window
  {
    public MainWindow()
    {
        InitializeComponent();
        //this dosen't work
        this.worldCbx.Text = "Select a Country";
        SqlConnection con = new SqlConnection(@"Data Source=>This works fine.mdf;Integrated Security=True;Connect Timeout=30");
        con.Open();
        SqlCommand com = new SqlCommand("SELECT name FROM bbc", con);
        SqlDataReader sdr = com.ExecuteReader();
        while (sdr.Read())
        {
            this.worldCbx.Items.Add(sdr["name"]);
        }
        sdr.Close();
    }
    private void worldCbx_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        //this dosen't work either.  
        this.worldCbx.Text = "Select a Country";
    }
}

}

1 个答案:

答案 0 :(得分:0)

comboBox.Text =“选择国家/地区”基本上将组合框的选择设置为“选择国家/地区”,如果它存在于“项目”列表中。所以如果你有一个组合框,其中的项目是......

选择国家/地区

USA

俄罗斯

加拿大

墨西哥

然后命令comboBox.Text =“Select A Country”将comboBox的选定值设置为“Select A Country”,因为它是comboBox的Items中的一个项目。要使comboBox按照您的描述操作...请使用下面的代码。

但是,这种方法的问题在于,一旦选择了国家/地区,comboBox将立即返回“选择国家/地区”。因此,用户可能会忘记他们刚刚选择的内容或可能不确定。无论哪种方式,从用户的角度来看,这可能会造成混淆。

听起来像comboBox上方的简单标签“Select A Country”将是一个更好的解决方案。希望这会有所帮助。

comboBox1.Items.Add("Select A Country");
for (int i = 1; i < 15; i++)
{
  comboBox1.Items.Add("Country_" + i);
}
comboBox1.SelectedIndex = 0;

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
  // do something with the selected index
  // - then reset the comboBox to "Select a country
  this.comboBox1.SelectedIndexChanged -= new System.EventHandler(this.comboBox1_SelectedIndexChanged);
  comboBox1.Text = "Select A Country";
  this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
}