【19】C# 窗体应用WinForm ——【列表框ListBox、复选列表框CheckedListBox】属性、方法、实例应用

发布于:2025-07-28 ⋅ 阅读:(14) ⋅ 点赞:(0)

  • WinForm 是 Windows Form 的简称,是基于 .NET Framework 平台的客户端(PC软件)开发技术,是 C# 语言中的一个重要应用。

  • .NET 提供了大量 Windows 风格的控件和事件,可以直接拿来使用。

9 复选列表框CheckedListBox

复选列表框显示的效果与复选框类似,但在选择多个选项时操作比一般的复选框更方便。

目标:使用复选列表框完成选购水果的操作。

添加 CheckedListBox ;
在属性items中添加 复选列表框的内容;
在这里插入图片描述

在属性items中添加 复选列表框的内容,按确认
在这里插入图片描述

CheckedListBox中就添加了复选列表框
在这里插入图片描述在button中添加函数

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

namespace WinFormTest
{
    public partial class Form1 : Form
    {

        public Form1()// 修改窗体初始化函数
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string msg = "";
            for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
            {
                msg = msg + " " + checkedListBox1.CheckedItems[i].ToString();
            }
            if (msg != "")
            {
                MessageBox.Show("您购买的商品有:" + msg, "提示");
            }
            else
            {
                MessageBox.Show("您没有选购商品!", "提示");
            }
        }
    }
}

运行测试
在这里插入图片描述

10. 列表框ListBox

列表框控件中有一些属性与前面介绍的控件不同,如下表所示:

属性名 作用
MultiColumn 获取或设置列表框是否支持多列,如果设置为 True,则表示支持多列; 如果设置为 False,则表示不支持多列,默认为 False
Items 获取或设置列表框控件中的值
SelectedItems 获取列表框中所有选中项的集合
SelectedItem 获取列表框中当前选中的项
SelectedIndex 获取列表框中当前选中项的索引,索引从 0 开始
SelectionMode 获取或设置列表框中选择的模式,当值为 One 时,代表只能选中一项, 当值为 MultiSimple 时,代表能选择多项, 当值为 None 时,代表不能选 择,当值为 MultiExtended 时,代表能选择多项,但要在按下 Shift 键后 再选择列表框中的项

列表框还提供了一些方法来操作列表框中的选项,由于列表框中的选项是一个集合形式的,列表项的操作都是用 Items 属性进行的

10.1 实例:买菜

使用列表框列出所需的商品。

注: ListBox实现多选需要设置窗体的 SelectionMode 属性MultiSimple

添加 ListBox ;
在这里插入图片描述

在属性items中添加 复选列表框的内容;

青菜
黄瓜
南瓜
豌豆
辣椒
茄子

在这里插入图片描述
输入确认后
在这里插入图片描述
在button 中添加代码

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

namespace WinFormTest
{
    public partial class Form1 : Form
    {

        public Form1()// 修改窗体初始化函数
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string msg = "";
            for (int i = 0; i < listBox1.SelectedItems.Count; i++)
            {
                msg = msg + " " + listBox1.SelectedItems[i].ToString();
            }
            if (msg != "")
            {
                MessageBox.Show("您购买的商品有:" + msg, "提示");
            }
            else
            {
                MessageBox.Show("您没有选购商品!", "提示");
            }
        }
    }
}

在这里插入图片描述

注: ListBox实现多选需要设置窗体的 SelectionMode 属性MultiSimple

默认值one

在这里插入图片描述

在这里插入图片描述

10.2 实例:购菜 应用二

  • 在上述实例的基础上添加两个按钮,一个负责向列表框中添加菜品,一个负责删除选中的列表项。

上述实例的基础上添加 1个 label,1个TextBox,2个Button
在这里插入图片描述
修改属性:
Button2属性中Name:add,Text:添加
Button3属性中Name:Del,Text:删除

在这里插入图片描述
编辑代码

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

namespace WinFormTest
{
    public partial class Form1 : Form
    {

        public Form1()// 修改窗体初始化函数
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)//下单
        {
            string msg = "";
            for (int i = 0; i < listBox1.SelectedItems.Count; i++)
            {
                msg = msg + " " + listBox1.SelectedItems[i].ToString();
            }
            if (msg != "")
            {
                MessageBox.Show("您选择的商品是:" + msg, "提示");
            }
            else
            {
                MessageBox.Show("您没有选择商品", "提示");
            }
        }

        private void add_Click(object sender, EventArgs e)//添加
        {
            // 当文本框中的值不为空时将其添加到列表框中
            if (textBox1.Text != "")
            {
                listBox1.Items.Add(textBox1.Text);
            }
            else
            {
                MessageBox.Show("请添加商品!");
            }
        }

        private void Del_Click(object sender, EventArgs e)//删除
        {
            //由于列表框控件中允许多选所以需要循环删除所有已选项
            int count = listBox1.SelectedItems.Count; // 获取listBox内被选中的元素数量
            List<string> itemValues = new List<string>(); // 定义一个字符串从列表
            if (count != 0)
            {
                for (int i = 0; i < count; i++)
                {
                    itemValues.Add(listBox1.SelectedItems[i].ToString());
                }
                foreach (string item in itemValues)
                {
                    listBox1.Items.Remove(item);
                }
            }
            else
            {
                MessageBox.Show("请选择需要删除的商品!");
            }
        }
    }
}

运行测试

删除商品 辣椒
在这里插入图片描述

添加商品 鸡蛋
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到