我有一个组合框,里面有一系列的东西......列表中的东西数量没有设定。它正在从文件夹中收集数据,你可以在组合框中拥有无限(有点夸张)的项目......我如何知道用户选择哪个选项?
我尝试了下面的代码,但它不起作用。我是C#的新手,不知道我做错了什么。
comboBox1.SelectedIndex = 0;
comboBox1.Refresh();
if(comboBox1.SelectedIndex = 0)
{
//setting the path code goes here
}
答案 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条件中),这将导致编译错误。