Winform 获取 ListBox 所有(多选)选中项的数据

界面如下:

将 listBox1 的 SelectionMode 字段的值设置为 MultiExtended

在运行之前,我们需要给 listBox1 添加数据

先新建一个类 Tool,这里用来随机生成字符串,用来添加到 listBox1 中

using System;
using System.Text;

public class Tool
{
    private static Random random = new Random();

    /// <summary>
    /// 生成字母和数字组合的随机字符串
    /// </summary>
    /// <param name="length"></param>
    /// <returns></returns>
    public static string GenerateRandomString(int length)
    {
        const string chars = "abcdefghijklmnopqrstuvwxyz0123456789";
        StringBuilder stringBuilder = new StringBuilder(length);

        for (int i = 0; i < length; i++)
        {
            int index = random.Next(chars.Length);
            stringBuilder.Append(chars[index]);
        }

        return stringBuilder.ToString();
    }
}

接下来就给 listBox1 添加数据

private void Form1_Load(object sender, EventArgs e)
{
    for (int i = 0; i < 20; i++)
    {
        string content = Tool.GenerateRandomString(5);
        listBox1.Items.Add(content);
    }
}

获取多选数据 按钮这里可以获取所有选中行的索引,或者所有选中行的值

1.获取所有选中项的值

  List<string> selectedItems = listBox1.SelectedItems.Cast<string>().ToList();
  foreach (string item in selectedItems)
  {
      Console.WriteLine(item);
  }

运行后,选中界面如下

点击 获取多选数据 按钮

可以看到,输出是对的

2.获取所有选中项的索引

List<int> selectedIndices = listBox1.SelectedIndices.Cast<int>().ToList();
foreach (var item in selectedIndices)
{
    Console.WriteLine(item);
}

运行后,选中界面如下

点击 获取多选数据 按钮

完整代码:

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Windows.Forms;

namespace 列表多选
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 20; i++)
            {
                string content = Tool.GenerateRandomString(5);
                listBox1.Items.Add(content);
            }
        }

        //获取列表所有选中的值
        private void button1_Click(object sender, EventArgs e)
        {
            //List<string> selectedItems = listBox1.SelectedItems.Cast<string>().ToList();
            //foreach (string item in selectedItems)
            //{
            //    Console.WriteLine(item);
            //}

            List<int> selectedIndices = listBox1.SelectedIndices.Cast<int>().ToList();
            foreach (var item in selectedIndices)
            {
                Console.WriteLine(item);
            }
        }

        //清空控制台
        private void button2_Click(object sender, EventArgs e)
        {
            Console.Clear();
        }
    }
}

end

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值