界面如下:
将 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