if(ComboBox1)语句错误

时间:2014-01-03 02:49:15

标签: c# if-statement combobox selectedindex

我创建了一个ComboBox,用户需要选择一种语言。

private void ComboBox1_SelectedIndex(object sender, EventArgs e)
{
    if (ComboBox1.SelectedIndex.ToString == "English")
    {
        this.Frame.Navigate(typeof(MainPage));
    }

我不确定我写错了什么。我应该将英语选项转换为字符串还是我可以选择作为项目?

3 个答案:

答案 0 :(得分:3)

selecteditem是选择的值

selectedindex是选择的索引

你还要检查你的组合框选择项目的天气,否则会抛出异常

private void ComboBox1_SelectedIndex(object sender, EventArgs e)
    {
        if (ComboBox1.SelectedIndex!=-1 && ComboBox1.SelectedItem.ToString() == "English")
        {
            this.Frame.Navigate(typeof(MainPage));
        }

答案 1 :(得分:1)

你需要ToString上的括号 - > ToString()甚至可以编译。 SelectedIndex也只会给你一个索引号而不是值。应该使用ComboBox1.SelectedItem.ToString()

private void ComboBox1_SelectedIndex(object sender, EventArgs e)
{

   if (ComboBox1.SelectedIndex.ToString() == "English")
   {
      this.Frame.Navigate(typeof(MainPage));
   }

尝试更接近这一点:

private void ComboBox1_SelectedIndex(object sender, EventArgs e)
{
   var comboBox = sender as ComboBox;
   if(comboBox != null)
   {     
     if (comboBox.SelectedIndex != -1 && comboBox.SelectedItem.ToString() == "English")
     {
        this.Frame.Navigate(typeof(MainPage));
     }
   }

答案 2 :(得分:0)

所选索引应为数值

所以请将您的代码更改为以下

private void ComboBox1_SelectedIndex(object sender, EventArgs e)
        {
          bool result = comboBox1.SelectedValue.ToString()=="English"; // case-1
            // Or use 
          result  = comboBox1.SelectedText.ToString() == = "English"; // Case -2

            //or use

           result  = comboBox1.SelectedText == "English"; //case-3


   if(result){
// Do the resut

}

注意:对于工作案例1和案例2,您必须使用数据源绑定组合框