首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何添加在标签中包含值的标签

如何添加在标签中包含值的标签
EN

Stack Overflow用户
提问于 2016-04-18 20:53:14
回答 2查看 33关注 0票数 0

这与列表框和常量有关。

首先,在列表框中选择每个“项”。然后,使用常量,该值将出现在标签的值中。

代码语言:javascript
复制
        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;

我将如何“保存”用户选择的标签中的值,并将其添加到用户选择的另一个标签中?谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-04-18 21:05:48

您不想在标签中添加值,这样就会出现奇怪的错误,因为转换会出错。

相反,您已经有了一种查找给定ListBox选择的数值的方法,您应该使用它。

票数 0
EN

Stack Overflow用户

发布于 2016-04-18 21:14:40

您不应该在标签和列表框中执行业务逻辑。我建议您为工作坊项目创建一个类。

代码语言:javascript
复制
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})";
}

现在您可以创建一个列表

代码语言:javascript
复制
List<Workshop> workshops = new List<Workshop> {
    new Workshop { Name = "Outdoor workshop bundle", Price = 200m },
    new Workshop { Name = "Essential Outdoor Field Skills", Price = 100m},
    ...
};

将列表分配给列表框

代码语言:javascript
复制
workshopListBox.DataSource = workshops;

选择所选的项目如下

代码语言:javascript
复制
var item = (Workshop)workshopListBox.SelectedItem;

并将价格相加到和字段中。

代码语言:javascript
复制
decimal sum = 0.0m;  // Make it a field, not a local variable.

...

sum += item.Price;
registrationFeeLabel.Text = sum.ToString("c");

现在,因为Workshop包含名称和价格,而且还因为列表框包含的是Workshop,而不仅仅是字符串,所以不再需要case语句。重写ToString方法非常重要。列表框需要它,以便知道如何显示项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36704092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档