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.pswp.cn/news/901014.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901014.shtml
英文地址,請注明出處:http://en.pswp.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 幫助 四、源碼解讀 五、討論和…