WinForm真入门(13)——ListBox控件详解

WinForm ListBox 详解与案例


一、核心概念

‌ListBox‌ 是 Windows 窗体中用于展示可滚动列表项的控件,支持单选或多选操作,适用于需要用户从固定数据集中选择一项或多项的场景‌。

二、核心属性

属性说明
‌Items‌管理列表项的集合,支持动态增删(如 Add()、Remove())‌。
‌SelectedIndex‌获取或设置选中项的索引(未选中时为 -1)‌。
‌SelectedItem‌获取当前选中的项对象‌。
‌SelectionMode‌设置选择模式:Single(默认)、MultiSimple 或 MultiExtended‌。
‌Sorted‌是否按字母顺序自动排序项‌。
‌ScrollAlwaysVisible‌始终显示滚动条(即使内容未超出可视区域)‌。

三、核心方法与事件

1‌、常用方法‌

  • Items.Add()‌:添加新项‌。
listBox1.Items.Add("新项");

。‌Items.RemoveAt()‌:根据索引删除项‌

listBox1.Items.RemoveAt(0); // 删除第一项
  • ClearSelected()‌:取消所有选中项‌。

2‌、重要事件‌

‌SelectedIndexChanged‌:选中项变化时触发‌。

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) {if (listBox1.SelectedItem != null) {MessageBox.Show($"选中项:{listBox1.SelectedItem}");}
}

四、完整案例

案例1:动态增删项
‌需求‌:通过按钮动态添加和删除列表项。
‌实现代码‌:

// 添加项
private void btnAdd_Click(object sender, EventArgs e) {listBox1.Items.Add(txtInput.Text);txtInput.Clear();
}// 删除选中项
private void btnDelete_Click(object sender, EventArgs e) {if (listBox1.SelectedIndex != -1) {listBox1.Items.RemoveAt(listBox1.SelectedIndex);}
}

‌说明‌:输入框 txtInput 用于接收用户输入,删除时需检查是否有选中项‌。


案例2:多选操作与数据绑定
‌需求‌:从数据库加载数据并支持多选。
‌实现代码‌:

// 绑定数据源(示例使用List模拟数据库数据)

private void Form1_Load(object sender, EventArgs e) {List<string> data = new List<string> { "北京", "上海", "广州", "深圳" };listBox1.DataSource = data;listBox1.SelectionMode = SelectionMode.MultiExtended; // 启用扩展多选
}// 获取所有选中项
private void btnShowSelected_Click(object sender, EventArgs e) {var selectedItems = listBox1.SelectedItems.Cast<string>().ToList();MessageBox.Show($"选中城市:{string.Join(", ", selectedItems)}");
}

‌说明‌:DataSource 属性支持绑定集合数据,SelectionMode 控制多选模式‌。


案例3:排序与批量删除
‌需求‌:自动排序列表项,并批量删除符合条件的项。
‌实现代码‌

// 启用排序
listBox1.Sorted = true;// 批量删除包含“测试”的项
private void btnBatchDelete_Click(object sender, EventArgs e) {for (int i = listBox1.Items.Count - 1; i >= 0; i--) {if (listBox1.Items[i].ToString().Contains("测试")) {listBox1.Items.RemoveAt(i); // 倒序删除避免索引错位}}
}

‌说明‌:倒序遍历避免因删除导致索引变化‌。


五、注意事项

‌性能优化‌:批量操作时使用 BeginUpdate() 和 EndUpdate() 减少界面刷新次数‌。

listBox1.BeginUpdate();
for (int i = 0; i < 1000; i++) {listBox1.Items.Add($"Item {i}");
}
listBox1.EndUpdate();

‌索引管理‌:删除多项时需倒序操作,避免索引越界‌。


总结

ListBox 是 WinForm 中灵活且功能丰富的列表控件,通过合理使用 Items 集合、SelectionMode 及事件机制,可实现动态数据管理、多选交互等复杂场景。开发时需注意性能优化和索引逻辑,避免常见错误‌

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/901014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

局域网内文件共享的实用软件推荐

软件介绍 在日常办公、学习或家庭网络环境里&#xff0c;局域网内文件共享是个常见需求。有一款免费的局域网共享软件非常适合这种场景。 这款局域网共享软件使用起来非常简单&#xff0c;不需要安装&#xff0c;直接点击就能使用。 它的操作流程简单易懂&#xff0c;用户只要…

ViewModel vs AndroidViewModel:核心区别与使用场景详解

在 Android 的 MVVM 架构中&#xff0c;ViewModel 和 AndroidViewModel 都是用于管理 UI 相关数据的组件&#xff0c;但二者有一些关键区别&#xff1a; 1. ViewModel 基本用途&#xff1a;用于存储和管理与 UI 相关的数据&#xff0c;生命周期与 Activity/Fragment 解耦&…

C语言--求n以内的素数(质数)

求n以内的素数&#xff0c;可以用试除法或者埃拉托斯特尼筛法&#xff08;埃氏筛法&#xff09; 文章目录 试除法埃拉托斯特尼筛法&#xff08;埃氏筛法&#xff09;两种方法测试运行效率 输入&#xff1a;数字n 输出&#xff1a;n以内所有的素数 不管是哪个方法&#xff0c;都…

Skynet.socket 函数族使用详解

目录 Skynet.socket 函数族使用详解核心功能分类一、TCP 连接管理1. 监听端口2. 建立连接3. 关闭连接 二、数据读写操作1. 阻塞式读取2. 写入数据2.1 socket.write(fd, data) 的返回值2.2 示例代码2.3 关键注意事项2.4 与其他函数的区别2.5 底层原理2.6 总结 三、UDP 处理1. 创…

Unity Addressables资源生命周期自动化监控技术详解

一、Addressables资源生命周期管理痛点 1. 常见资源泄漏场景 泄漏类型典型表现检测难度隐式引用泄漏脚本持有AssetReference未释放高异步操作未处理AsyncOperationHandle未释放中循环依赖泄漏资源相互引用无法释放极高事件订阅泄漏未取消事件监听导致对象保留高 2. 传统管理…

aws(学习笔记第三十八课) codepipeline-build-deploy-github-manual

文章目录 aws(学习笔记第三十八课) codepipeline-build-deploy-github-manual学习内容:1. 整体架构1.1 代码链接1.2 全体处理架构2. 代码分析2.1 创建`ImageRepo`,并设定给`FargateTaskDef`2.2 创建`CodeBuild project`2.3 对`CodeBuild project`赋予权限(`ECR`的`image rep…

在windows服务器使用Nginx反向代理云端的python实现的web应用

近日得闲&#xff0c;计划将之前写过的一些小桌面程序搬到云服务器上方便随时随地使用&#xff0c;同时也学习一些基本的网站开发和搭建知识&#xff0c;于是在AI的帮助下&#xff0c;基于niceguifastapi非常快捷地搞出来了一个前后端一体的网站程序&#xff0c;放在云服务器上…

全球贸易战火重燃:50%关税如何绞杀跨境电商低价模式?

一、政策高压&#xff1a;美国对华贸易战升级路线图 2024年5月&#xff0c;美国国会《数字贸易壁垒法案》草案曝光&#xff0c;标志着中美贸易博弈进入新阶段&#xff1a; • 关税武器精准打击&#xff1a;成衣、消费电子、小家电税率拟从10-25%跃升至50% • 监管范围扩大&…

0411 | 软考高项笔记:项目立项

在软考的项目管理知识体系中&#xff0c;技术可行性和经济可行性是项目立项阶段非常重要的两个分析维度。以下是对这两个考点的详细解释和记忆方法&#xff1a; 技术可行性分析 定义&#xff1a; 技术可行性分析是评估项目在现有技术条件和资源下是否能够成功实施。它主要回答…

二分查找3:69. x 的平方根

链接&#xff1a;69. x 的平方根 - 力扣&#xff08;LeetCode&#xff09; 题解&#xff1a; 本题本质是二分查找右端点 x的算数平方根一定在1 ~ x 区间内&#xff0c;在1 ~ x区间内查找一个数num&#xff0c;num^2x&#xff0c;但实际上num不一定是整数&#xff0c;所以是n…

oracle大师认证证书有用吗

专业能力的高度认可&#xff1a;OCM 是 Oracle认证的最高级别&#xff0c;是对数据库从业人员技术、知识和操作技能的最高级认可&#xff0c;也是 IT 界顶级认证之一。它表明持证者具备处理关键业务数据库系统和应用的能力&#xff0c;能够解决最困难的技术难题和最复杂的系统故…

InnoDB 如何解决幻读:深入解析与 Java 实践

在数据库事务管理中&#xff0c;幻读&#xff08;Phantom Read&#xff09;是并发操作中常见的问题&#xff0c;可能导致数据一致性异常。MySQL 的 InnoDB 存储引擎通过其事务隔离机制和多版本并发控制&#xff08;MVCC&#xff09;&#xff0c;有效解决了幻读问题。作为 Java …

【AI编程技术爆发:从辅助工具到生产力革命】

目录 前言&#xff1a;技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解关键技术模块技术选型对比 二、实战演示环境配置要求核心代码实现运行结果验证 三、性能对比测试方法论量化数据对比&#xff08;2023年数据&#xff09;结果分析 四、最…

ICRA-2025 | 视觉预测助力机器人自主导航!NavigateDiff:视觉引导的零样本导航助理

论文&#xff1a;Yiran Qin 1 , 2 ^{1,2} 1,2, Ao Sun 2 ^{2} 2, Yuze Hong 2 ^{2} 2, Benyou Wang 2 ^{2} 2, Ruimao Zhang 1 ^{1} 1单位&#xff1a; 1 ^{1} 1中山大学&#xff0c; 2 ^{2} 2香港中文大学深圳校区论文标题&#xff1a;NavigateDiff: Visual Predictors are Ze…

【ESP32S3】GATT Server service table传送数据到调试助手

前言 在初步学习esp32蓝牙的过程中&#xff0c;借鉴了官方的GATT Server Service Table Example&#xff0c;可以在readme中看到&#xff0c;此demo是采用低功耗蓝牙的通用属性服务器来创建订阅服务和特性。如果你接触过MQTT&#xff0c;你会发现GATT Server这一特性和MQTT的订…

DeepSeek :中国 AI 如何用 “小米加步枪” 逆袭硅谷

2025 年春节前夕&#xff0c;人工智能领域诞生了一项重大成果 ——DeepSeek 发布DeepSeek - R1 大模型。这一模型迅速引发广泛关注&#xff0c;在苹果 AppStore 中国区免费榜登顶。 DeepSeek 采用开源策略&#xff0c;依据宽松的 MIT 许可证&#xff0c;公开了模型权重、训练方…

关税扰动下市场波动,如何寻找确定性的长期之锚?

近期的关税纷争&#xff0c;扰动全球资本市场下行。A股市场一度大幅下跌。但随着各大主力下场&#xff0c;有关部委发布有关有力措施&#xff0c;A股逐步稳住阵脚。 4月8日至4月10日&#xff0c;大盘指数连续3天上涨&#xff0c;上涨120多点&#xff0c;展现出较强的抵御关税壁…

NeuroImage:膝关节炎如何影响大脑?静态与动态功能网络变化全解析

膝骨关节炎&#xff08;KOA&#xff09;是导致老年人活动受限和残疾的主要原因之一。这种疾病不仅引起关节疼痛&#xff0c;还会显著影响患者的生活质量。然而&#xff0c;目前对于KOA患者大脑功能网络的异常变化及其与临床症状之间的关系尚不清楚。 2024年4月10日&#xff0c;…

【KWDB 创作者计划】KWDB 数据库全维度解析手册

——从原理到实践&#xff0c;构建下一代数据基础设施 ​第一章&#xff1a;KWDB 设计哲学与技术全景 1.1 为什么需要 KWDB&#xff1f; 在数据爆炸与业务场景碎片化的今天&#xff0c;传统数据库面临三大挑战&#xff1a;​扩展性瓶颈​&#xff08;单机性能天花板&#xff…

一个批量文件Dos2Unix程序(Microsoft Store,开源)

这个程序可以把整个目录的文本文件改成UNIX格式&#xff0c;源码是用C#写的。 目录 一、从Microsoft Store安装 二、从github获取源码 三、功能介绍 3.1 运行 3.2 浏览 3.3 转换 3.4 转换&#xff08;无列表&#xff09; 3.5 取消 3.6 帮助 四、源码解读 五、讨论和…