2014-11-23 27 views
-2

我想出了我的百分比,计算的东西。现在,我需要在计算后显示一条消息,指出租用的汽车类型,天数和租金总额。如何从我的输出中将信息提取到MessageBox中

//这是我的单选按钮

private void rdoVehicle_CheckedChanged(object sender, EventArgs e) 
{ 
    string rdoName = ((RadioButton)sender).Name; //name of selected radio button 
    switch (rdoName) 
    { 
     case "rdoEconomy": vehicleCost = ECONOMY; break; 
     case "rdoLuxury": vehicleCost = LUXURY; break; 
     case "rdoVan" : vehicleCost = VAN; break; 
     case "rdoTruck": vehicleCost = TRUCK; break; 
     case "rdoSuv": vehicleCost = SUV; break; 
    }//end switch 
} 

txtDays,是我的txt属性的天数被租用 和lblRentalTotal是我的租金总产量的标签。

MessageBox.Show(?????????????????)

+0

将断点在你的代码的第一行,按F5并通过调试代码步骤。你可以检查每行的值 - 这应该很快告诉你为什么你的if语句“基本被忽略”。 – Tim 2014-11-23 13:50:20

+0

检查'PROMODAYS',这可能是一些常量字段,并且该条件可能是真的总是+一些无线电被检查,你需要调试和检查 - 这是我看到添加代码后的建议。 – 2014-11-23 14:01:48

+0

我的PROMODAYS被分配了4.我想要计算他们是否租了一辆豪华轿车超过3天,您会收到15%的折扣并且PROMODISCOUNT设置为0.15 – 2014-11-23 14:58:56

回答

0

将有2个事件,如果所有的单选按钮连接到同一个事件触发:

  1. 当一个单选按钮没有被选中时,一个会发生。
  2. 当新单选按钮被选中时,另一个会触发。

检查哪个单选按钮在事件处理程序检查:

private void rdoVehicle_CheckedChanged(object sender, EventArgs e) 
{ 
    var rad = ((RadioButton)sender); 
    if(!rad.Checked) 
     return; 

    switch (rad.Name) 
    { 
     case "rdoEconomy": vehicleCost = ECONOMY; break; 
     case "rdoLuxury": vehicleCost = LUXURY; break; 
     case "rdoVan" : vehicleCost = VAN; break; 
     case "rdoTruck": vehicleCost = TRUCK; break; 
     case "rdoSuv": vehicleCost = SUV; break; 
    } 
} 
+0

所有的rdo按钮连线到btnCalculate_click – 2014-11-23 22:21:15

+0

会在我的初始切换语句后进行。如果你看不到 – 2014-11-23 22:23:50

+0

,我在编程开始时发布的示例代码使用了'rdoVehicle_CheckedChanged',而没有提及任何'btnCalculate_click'事件处理程序。我提供的答案使用了您发布的确切代码,并且仅在单选按钮处于选中状态时添加了对“switch”的评估。任何需要完成的工作,例如添加文本到标签,都应该在switch语句之后添加。 – 2014-11-23 22:30:46