我正在尝试使用 selectedItem
命令查看列表框中已选择的内容,然后使用开关根据已选择的内容设置 activityLevel
变量。然后,我需要能够将该变量乘以设置为双精度的BMR
变量。然后结果显示在标签中。
string activityLevel = lstActivityLevel.SelectedItem.ToString();
switch (activityLevel)
{
case 1:
activityLevel = Convert.ToInt32(ACTIVTY_LEVEL2);
break;
case 2:
activityLevel = Convert.ToInt32(ACTIVTY_LEVEL3);
break;
case 3:
activityLevel = Convert.ToInt32(ACTIVTY_LEVEL4);
break;
case 4:
activityLevel = Convert.ToInt32(ACTIVTY_LEVEL5);
break;
}
//Display BMR in label
lblBMRResult.Text = (BMR*activityLevel).ToString();
您可以使用
SelectedIndex
,然后将lstActivityLevel
的每个项目设置为 0 到 4 之间的数字:
double activityLevel = 0;
switch (lstActivityLevel.SelectedIndex)
{
case 0:
activityLevel = ACTIVTY_LEVEL1;
break;
case 1:
activityLevel = ACTIVTY_LEVEL2;
break;
case 2:
activityLevel = ACTIVTY_LEVEL3;
break;
case 3:
activityLevel = ACTIVTY_LEVEL4;
break;
case 4:
activityLevel = ACTIVTY_LEVEL5;
break;
}
lblBMRResult.Text = (BMR * activityLevel).ToString();
将 SelectedItem 值转换为字符串。值 1(整数)与"1"(字符串)不同...因此,您必须将 switch 语句更改为:
switch (activityLevel)
{
case "1":
blah, blah...
break;
}
等等..
或者不要在 SelectedItem 上调用 ToString()。
或者,您可以使用 SelectedIndex 而不是 SelectedItem。