这与列表框和常量有关。
首先,在列表框中选择每个“项”。然后,使用常量,该值将出现在标签的值中。
workshop = workshopListBox.SelectedItem.ToString();
switch (workshop)
{
case "Outdoor workshop bundle":
registrationFeeLabel.Text = OUTDOOR_WORKSHOP_BUNDLE.ToString("c");
break;
case "Essential Outdoor Field Skills":
registrationFeeLabel.Text = ESSENTIAL_OUTDOOR_FIELD.ToString("c");
break;
case "Picture Perfect Panoramas":
registrationFeeLabel.Text = PICTURE_PERFECT_PANORAMAS.ToString("c");
break;
case "Night Photography Magic":
registrationFeeLabel.Text = NIGHT_PHOTOGRAPHY_MAGIC.ToString("c");
break;
}
location = locationListBox.SelectedItem.ToString();
switch (location)
{
case "Mont Tremblant":
lodgingFeeLabel.Text = MONT_TREMBLANT.ToString("c");
break;
case "Quebec":
lodgingFeeLabel.Text = QUEBEC.ToString("c");
break;
case "Montreal":
lodgingFeeLabel.Text = MONTREAL.ToString("c");
break;以下是常量和值:
const int OUTDOOR_WORKSHOP_BUNDLE = 200;const int ESSENTIAL_OUTDOOR_FIELD = 100;const int PICTURE_PERFECT_PANORAMAS = 100;const int NIGHT_PHOTOGRAPHY_MAGIC = 150;const int MONT_TREMBLANT = 75;const int魁北克= 95;const int蒙特利尔= 0;string作坊;string location;
我将如何“保存”用户选择的标签中的值,并将其添加到用户选择的另一个标签中?谢谢
发布于 2016-04-18 21:05:48
您不想在标签中添加值,这样就会出现奇怪的错误,因为转换会出错。
相反,您已经有了一种查找给定ListBox选择的数值的方法,您应该使用它。
发布于 2016-04-18 21:14:40
您不应该在标签和列表框中执行业务逻辑。我建议您为工作坊项目创建一个类。
public class Workshop
{
public string Name { get; set; }
public decimal Price { get; set; }
// Visual Studio 2015 / C#6.0 syntax.
public override string ToString() => $"{Name} ({Price:c})";
}现在您可以创建一个列表
List<Workshop> workshops = new List<Workshop> {
new Workshop { Name = "Outdoor workshop bundle", Price = 200m },
new Workshop { Name = "Essential Outdoor Field Skills", Price = 100m},
...
};将列表分配给列表框
workshopListBox.DataSource = workshops;选择所选的项目如下
var item = (Workshop)workshopListBox.SelectedItem;并将价格相加到和字段中。
decimal sum = 0.0m; // Make it a field, not a local variable.
...
sum += item.Price;
registrationFeeLabel.Text = sum.ToString("c");现在,因为Workshop包含名称和价格,而且还因为列表框包含的是Workshop,而不仅仅是字符串,所以不再需要case语句。重写ToString方法非常重要。列表框需要它,以便知道如何显示项目。
https://stackoverflow.com/questions/36704092
复制相似问题