C# winform Listbox基本使用
数据源的绑定
// 创建数据
List<UserInfo> userInfos = new List<UserInfo>();
userInfos.Add(new UserInfo() { Id = 1, Name = "admin" });
userInfos.Add(new UserInfo() { Id = 2, Name = "张三" });
userInfos.Add(new UserInfo() { Id = 3, Name = "李四" });
userInfos.Add(new UserInfo() { Id = 4, Name = "tony" });
userInfos.Add(new UserInfo() { Id = 5, Name = "赵六" });
// 绑定数据 不修改绑定
this.lbList.DataSource = userInfos;
this.lbList.DisplayMember = "Name"; // 显示内容 数据的属性
this.lbList.ValueMember = "Id"; // 项的值 数据的属性
绑定后数据源的添加与删除
// 获取列表的数据源
List<UserInfo> listView = lbList.DataSource as List<UserInfo>;
// 添加元素
listView.Add(new UserInfo() { Id = 6, Name = "王五" });
// 删除元素
listView.RemoveAt(3);
// 修改数据源
this.lbList.DataSource = null;
this.lbList.DataSource = listView;
this.lbList.DisplayMember = "Name"; // 显示内容 数据的属性
this.lbList.ValueMember = "Id"; // 项的值 数据的属性
完整代码
using System;
using System.Collections.Generic;
using System.Text;
namespace ListBoxData
{
public class UserInfo
{
// 快捷创建 属性 prop
public int Id { get; set; }
public string Name { get; set; }
}
}
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;
using System.Diagnostics;
namespace ListBoxData
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 清空选项
lbList.Items.Clear();
// 大量添加删除
lbList.BeginUpdate(); // 避免闪烁 问题
// lbList.EndUpdate();
// 添加项
lbList.Items.Add(12);
lbList.Items.Add("json");
string[] itemList = { "abc", "admin", "sql" };
lbList.Items.AddRange(itemList);
// 插入项目
lbList.Items.Insert(3, "mrc");
// 获取索引
int index = lbList.Items.IndexOf("abc");
Debug.WriteLine("abc索引:" + index.ToString());
// 是否存在
bool isContains = lbList.Items.Contains("admin");
Debug.WriteLine("admin 是否存在:" + isContains.ToString());
// 删除项目
lbList.Items.Remove("sql");
lbList.Items.RemoveAt(3);
// 结束刷新
lbList.EndUpdate();
}
// 数据集绑定
private void button1_Click(object sender, EventArgs e)
{
this.lbList.Items.Clear();
// 创建数据
List<UserInfo> userInfos = new List<UserInfo>();
userInfos.Add(new UserInfo() { Id = 1, Name = "admin" });
userInfos.Add(new UserInfo() { Id = 2, Name = "张三" });
userInfos.Add(new UserInfo() { Id = 3, Name = "李四" });
userInfos.Add(new UserInfo() { Id = 4, Name = "tony" });
userInfos.Add(new UserInfo() { Id = 5, Name = "赵六" });
// 绑定数据 不修改绑定
this.lbList.DataSource = userInfos;
this.lbList.DisplayMember = "Name"; // 显示内容 数据的属性
this.lbList.ValueMember = "Id"; // 项的值 数据的属性
修改
//BindingSource bs = new BindingSource();
//bs.DataSource = userInfos;
//this.lbList.DataSource = bs;
//this.lbList.DisplayMember = "Name"; // 显示内容 数据的属性
//this.lbList.ValueMember = "Id"; // 项的值 数据的属性
}
// 索引操作
private void btnOp_Click(object sender, EventArgs e)
{
// 获取当前选择项的值
// 单项
// this.lbList.SelectedItem 项
// this.lbList.SelectedIndex 索引
// this.lbList.SelectedValue 值
//MessageBox.Show(this.lbList.SelectedValue.ToString());
// 选择项 索引的集合 多项
var indexes = this.lbList.SelectedIndices;
string strIndices = "";
foreach (int i in indexes)
{
strIndices += i.ToString() + ",";
}
Debug.WriteLine(strIndices);
// 选择项 项的集合 多项
var items = this.lbList.SelectedItems;
string strItem = "";
foreach (var item in items)
{
UserInfo infoTemp = item as UserInfo;
strItem += infoTemp.Name.ToString() + ",";
}
Debug.WriteLine(strItem);
}
// 数据源添加与删除
private void btnBindingOp_Click(object sender, EventArgs e)
{
// 获取列表的数据源
List<UserInfo> listView = lbList.DataSource as List<UserInfo>;
// 添加元素
listView.Add(new UserInfo() { Id = 6, Name = "王五" });
// 删除元素
listView.RemoveAt(3);
// 修改数据源
this.lbList.DataSource = null;
this.lbList.DataSource = listView;
this.lbList.DisplayMember = "Name"; // 显示内容 数据的属性
this.lbList.ValueMember = "Id"; // 项的值 数据的属性
}
}
}