知道在C#中选择组合框中的哪个选项?

时间:2012-05-09 13:57:05

标签: c# combobox

我有一个组合框,里面有一系列的东西......列表中的东西数量没有设定。它正在从文件夹中收集数据,你可以在组合框中拥有无限(有点夸张)的项目......我如何知道用户选择哪个选项?

我尝试了下面的代码,但它不起作用。我是C#的新手,不知道我做错了什么。

        comboBox1.SelectedIndex = 0;
        comboBox1.Refresh();

        if(comboBox1.SelectedIndex = 0)
        {
           //setting the path code goes here
        }

4 个答案:

答案 0 :(得分:5)

要比较C#中的值,您需要使用“==”而不是“=”

if(comboBox1.SelectedIndex == 0) 
{ 
   //setting the path code goes here 
} 

答案 1 :(得分:3)

使用ComboBox.SelectedItem财产。

答案 2 :(得分:2)

编辑:显然我是想快速回答而不是提供好的信息,我正在添加更多信息以便于阅读

组合框中有一个事件会在每次选择更改时触发。在设计器中选择你的组合框,然后选择事件选项卡,然后双击SelectionChanged。

如果您只需要访问已经选择的内容,我们可以使用按钮点击,您可以使用Rahul声明

Button1_Click(...)
{ 
    MessageBox.Show(comboBox1.SelectedItem.ToString()); 
}

或者您只想访问当前在组合框中显示的文本

Button1_Click(...)
{ 
    MessageBox.Show(comboBox1.SelectedText); 
}

答案 3 :(得分:1)

当您使用=运算符时,它将右侧设置为左侧,结果是右侧(也设置左侧)。

当您使用==运算符时,它会检查右侧是否等于左侧,结果是bool(true / false)。

int i = 10;
int j = 40;

Console.WriteLine(i == j); // false
Console.WriteLine(i); // 10
Console.WriteLine(j); // 40
Console.WriteLine(i = j); // 40
Console.WriteLine(i); // 40
Console.WriteLine(i == j); // true

因此,在开始时,您将SelectedIndex设置为0,您可能不想这样做,因为您想知道用户选择了哪个索引。

因此,如果您要更改SelectedIndex,您将无法知道用户选择了什么。

您需要的条件是:

if (comboBox1.SelectedIndex == 0)
{
    // Selected item is item 0
}

当你这样做时:

if (comboBox1.SelectedIndex = 0)
{
}

实际发生的是SelectedIndex设置为0,然后编译器尝试将0转换为布尔值(因为它在if条件中),这将导致编译错误。