2012-02-08 41 views
3

的的SelectedIndexChanged-事件我有两个只读值的组合框:白色融合和银色的融合。
如何根据选择ComboBox中的每一个来运行正确的方法?这些方法只是将一个Integer从一个SQL表中提取并放入一个TextBox中。如何使用组合框

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

回答

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

编辑:

控件的名称必须是cboOilVehicle(线1)或cboVehicle(第3行)时,它不能同时。你必须决定哪个是正确的

+0

即只允许一个变化。我怎样才能做到这一点,所以我可以不断来回改变?谢谢 – 2012-02-08 02:31:07

+0

为什么这只适用于一个改变?这里没有任何东西可以产生这种效果。看看whiteFusionOil()和silverFusionOil()为罪魁祸首 – 2012-02-08 02:33:25

+0

私人无效whiteFusionOil(){ 在 db.cars 使用(DataClasses1DataContext DB =新DataClasses1DataContext()){ VAR 车=(从c其中c.carDesc = =“White Fusion” select c.oilChange).FirstOrDefault(); txtOilChange.Text = car.ToString(); } } – 2012-02-08 02:38:59

1

试试这个下面

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

whiteFusionOil(); 

} 
else 
{ 
silverFusionOil(); 

} 
2

如果你将要在文本直接比较,使用组合框的Text属性:

private void cboOilVehicle_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (cboVehicle.Text == "White Fusion") 
    { 
     whiteFusionOil(); 
    } 
    else 
    { 
     silverFusionOil();  
    } 
}