如何使用 ComboBox 的 SelectedIndexChanged 事件

4

我有一个ComboBox,其中有两个只读的值:白色融合和银色融合。
如何根据在ComboBox中选择的每个值获取正确的方法运行?这些方法只是从SQL表中提取整数并将其放入TextBox中。

private void cboOilVehicle_SelectedIndexChanged(object sender, EventArgs e)
{
    if (cboVehicle.SelectedIndexChanged == "White Fusion")
    {
        whiteFusionOil();
    }
    else
    {
        silverFusionOil();    
    }
}
3个回答

9
private void cboOilVehicle_SelectedIndexChanged(object sender, EventArgs e)
{
  if (cboVehicle.SelectedIndex == 0)
  {
    whiteFusionOil();
  }
  else
  {
    silverFusionOil();    
  }
}

编辑:

这个控件的名称必须是 cboOilVehicle(第一行)或者 cboVehicle(第三行),不能同时使用两个。你需要决定哪个是正确的。


那只允许一次更改。我该如何做到来回多次更改?谢谢。 - Sealer_05
为什么这只对一个更改起作用?里面没有任何东西可以产生这种效果。查看whiteFusionOil()和silverFusionOil()以找到罪魁祸首。 - Eugen Rieck
私有的无返回值函数whiteFusionOil() { 使用(DataClasses1DataContext db = new DataClasses1DataContext()) { var car = (from c in db.cars where c.carDesc == "White Fusion" select c.oilChange).FirstOrDefault(); txtOilChange.Text = car.ToString(); } } - Sealer_05
这是两种方法中的一个,除了where子句之外完全相同。一旦我更改组合框,它会执行一次更改,然后就完成了。 - Sealer_05

4
如果您要直接比较文本,请使用组合框的Text属性:
private void cboOilVehicle_SelectedIndexChanged(object sender, EventArgs e)
{
    if (cboVehicle.Text == "White Fusion")
    {
        whiteFusionOil();
    } 
    else
    {
        silverFusionOil();    
    }
}

1

尝试下面的代码

if(cboVehicle.SelectedItem.Text == "White Fusion")
{

whiteFusionOil();

}
else 
{
silverFusionOil();

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接