c# - 将值存储到列表框项 C#

标签 c#

我想知道如何将 VALUE 存储到列表框中的项目。我目前正在为我的研究制作工作表,我一直想知道如何做。基本上我需要存储食物的值(例如西兰花、面包。例如:西兰花的值为 20 卡路里)。

用户不能看到这个值,只有程序可以存储它。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MCAST_Calorie_Counter
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            lbAvailable.Items.Clear();
            if (comboBox1.Text == "Vegetables")
            {
                lbAvailable.Items.Add("Broccoli");
                lbAvailable.Items.Add("Carrots");
                lbAvailable.Items.Add("Lettuce");
                lbAvailable.Items.Add("Onions");
                lbAvailable.Items.Add("Potatoes");
            }

            if (comboBox1.Text == "Meat")
            {
                lbAvailable.Items.Add("Chicken");
                lbAvailable.Items.Add("Veal");
                lbAvailable.Items.Add("Beef");
                lbAvailable.Items.Add("Fish");
            }

            if (comboBox1.Text == "Legumes")
            {
                lbAvailable.Items.Add("Bread");
                lbAvailable.Items.Add("Peanuts");
                lbAvailable.Items.Add("Green Peas");
                lbAvailable.Items.Add("Lentils");
            }
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            ListBox.SelectedObjectCollection highlightedItems = lbAvailable.SelectedItems;

            foreach (var item in highlightedItems)
            {
                lbChosen.Items.Add(item);
            }
            if (lbAvailable.SelectedItems.Count > 0)
            {
                lbAvailable.Items.Remove(lbAvailable.SelectedItems[0]);
            }
        }

        private void btnRemove_Click(object sender, EventArgs e)
        {
            ListBox.SelectedObjectCollection highlightedItems = lbChosen.SelectedItems;

            foreach (var item in highlightedItems)
            {
                lbAvailable.Items.Add(item);
            }
            if (lbChosen.SelectedItems.Count > 0)
            {
                lbChosen.Items.Remove(lbChosen.SelectedItems[0]);
            }
        }

        private void btnClear_Click(object sender, EventArgs e)
        {
            lbAvailable.Items.Clear();
            lbChosen.Items.Clear();
            if (comboBox1.Text == "Vegetables")
            {
                lbAvailable.Items.Add("Broccoli");
                lbAvailable.Items.Add("Carrots");
                lbAvailable.Items.Add("Lettuce");
                lbAvailable.Items.Add("Onions");
                lbAvailable.Items.Add("Potatoes");
            }

            if (comboBox1.Text == "Meat")
            {
                lbAvailable.Items.Add("Chicken");
                lbAvailable.Items.Add("Veal");
                lbAvailable.Items.Add("Beef");
                lbAvailable.Items.Add("Fish");
            }

            if (comboBox1.Text == "Legumes")
            {
                lbAvailable.Items.Add("Bread");
                lbAvailable.Items.Add("Peanuts");
                lbAvailable.Items.Add("Green Peas");
                lbAvailable.Items.Add("Lentils");
            }
        }
    }
}

非常感谢您的帮助!

最佳答案

您始终可以将支持 ToString() 的自定义对象添加到 ListBox.Items 集合:

struct Record
{
    int value;
    string label;

    public override string ToString()
    {
        return label;
    }
}

添加自定义对象:

Record record = new Record();
record.value = 1;
record.label = "This text will appear in the ListBox";
listBox.Items.Add(record);

检索它:

Record selectedRecord = (Record)listBox.SelectedItem;
Console.WriteLine(selectedRecord.value); // => 1

关于c# - 将值存储到列表框项 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32406525/

相关文章:

c# - DirectoryEntry 在尝试使用安全端口连接 ldap 服务器时出现 com 异常

c# - 你会如何制作一个 "Favorite Pages"系统

c# - 无法仅在一台机器上连接到 MySQL 数据库

c# - Unity Camera Size 网络播放器

c# - 通过连接表在 Entity Framework 中表达一对多关系

c# - 通过引用传递(ref this)

c# - 使用 System.DirectoryServices.AccountManagement 我收到奇怪的错误

c# - 对与指定绑定(bind)约束匹配的类型调用构造函数引发异常

c# - 获取 C# 类型的 XSD 架构

c# - 如何计算多个模型之间的参数? ASP.NET MVC