我正在尝试使用selectedItem
命令查看列表框中选择的内容,然后根据所选内容使用开关设置activityLevel
变量。然后我需要能够将该变量乘以设置为double的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();
答案 0 :(得分:0)
您可以使用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();
答案 1 :(得分:-1)
您将SelectedItem值转换为字符串。值1(int)与" 1"不同(字符串)...因此,您必须将switch语句更改为:
switch (activityLevel)
{
case "1":
blah, blah...
break;
}
依旧......
或者不要在SelectedItem上调用ToString()。
或者您可以使用SelectedIndex而不是SelectedItem ..