網站首頁 編程語言 正文
關于ListBox
ListBox是WinForm中的列表控件,它提供了一個項目列表(一組數據項),用戶可以選擇一個或者多個條目,當列表項目過多時,ListBox會自動添加滾動條,使用戶可以滾動查閱所有選項。ListBox可以預先設定列表內容,也可以綁定其他控件或數據庫,自動更新條目,把數據逐一顯示出來。
ListBox常用屬性
- *列表索引值,是指列表中的條目的序號,從0開始,如0,1,2,3... ...,當對列表進行增刪插入等操作時,條目的排序發生變化,索引亦會變化。
- *選擇項索引,是指選中的項目亦從0開始的序號,當對選中項進行增刪等操作時,數目發生變化,索引亦會變化。就好像我叫癡者工良,按照姓名拼音排序,在班級的學號是66,而在班里10個姓癡的同學中,我是3號。
兩者區別如下(有顏色背景為選中項):
常用屬性 | 說明 |
---|---|
Items | 指列表中所有的條目集合,是一個數組集合。可以通過該屬性,對列表進行增添、移除或獲取列表內容 |
MultiColumn | 用來設置或獲取一個值(bool值),表示是否允許多列顯示,true表示多列,false表示單列,默認為false。 |
CoumnWidth | 用來獲取列表當前列的寬度或設置列表當前列的寬度 |
SelectionMode |
設置列表條目的選擇方法。 SelectionMode.None 表示不允許選中 SelectionMode.One 表示只允許用戶選擇一項 SelectionMode.MultiExtended 表示允許選擇多項,但選中的條目必定相連(相鄰) SelectionMode.MultiSimple 表示允許選擇多項,可以任意選中多個條目。如下圖 |
SelectedIndex |
*獲取選中項的索引 未選中任何項時,返回值為 1 單選時,屬性值即為選中項的索引 多選時,表示第一項選定項的索引,亦可使用SelectedIndex[i]獲取其它選中項索引,亦可讓某項變成選中狀態。i 為選中項從0開始的序號。 |
SelectedIndeces | 用來獲取選中項從0開始的索引的集合,一般只用于多項。與SelectedIndex相似,但SelectedIndeces只有獲取索引的能力。 |
SelectedItem | 獲取列表當前選中項。注意,獲取到的是列表選中項的文本內容,而SelectedIndex和SelectedIndeces獲取的只是選中項索引(int)。 |
SelectedItems |
獲取選中項的集合,使用SelectedItems[i]來獲取選中項的文本內容,i為選中項集合索引。 SelectedItems和SelectedIndex相似,但一個是獲取文本字段,一個是獲取索引。 |
Sorted | 用來設置或獲取列表是否按字母排序(bool)。 |
Text | 獲取或搜索列表控件當前選定項的文本。 |
ItemsCount | 用來獲取當前列表條目的 數目。 |
ListBox增加、插入或刪除內容
這是通過使用Items屬性進行操作的,在visual studio中新建窗口,拖入一個列表控件,控件name為lixtBox1
listBox1.Items.Add("要增加的條目文本"); //將在列表后面添加 listBox1.Items.Insert(i, "要增加的條目文本"); //將在索引為i的條目后面插入一條新條目 listBox1.Items.Remove("在此放入你要移除條目的文本內容"); //刪除是用的是文本內容,而不是索引 listBox1.Items.Clear(); //清空列表所有條目 listBox1.ClearSelected(); //取消所有選中項,即變為未選中狀態
ListBox刪除多項內容
很多朋友在這里摔跤,vs老是提示數組超出界限。因為ListBox的刪除要通過指定某項的文本,并且只能一項項的刪除,而刪除一項后索引又會發生變化,所以新手可能會很惘然。下面提供兩種刪除方式的代碼供新手參考。
for (int i=listBox1.SelectedItems.Count-1;i>=0 ;i--) { //要從后面往前刪除 listBox1.Items.Remove(listBox1.SelectedItems[i]); //SelectedItems直接獲取選中項的文本 } //如果你是新手,看不懂上面的代碼,別急,跳過這里,先看下面內容內容,后面會詳細介紹
for (int i = listBox1.SelectedItems.Count-1; i >=0; i--) { //亦是從后刪除 listBox1.Items.Remove(listBox1.Items[listBox1.SelectedIndices[i]]); //先獲取索引,再獲取文本內容 }
獲取集合的數量
int i = 0; i=listBox1.Items.Count; //獲取列表所有條目的數量 i = listBox1.SelectedIndices.Count; //獲取選中的條目的數量 i = listBox1.SelectedItems.Count; //獲取選中的條目的數量 //listBox1.SelectedIndex不能獲取數量!請翻閱屬性表,有關鍵詞“集合”。能夠獲取集合的屬性,才能獲取數量
獲取所有選中條目的內容
再新建一個TextBox控件,name為textBox1,代碼如下
textBox1.Clear(); textBox1.Text = "選中項的內容為\r\n"; for(int i=0;i<listBox1.SelectedItems.Count ;i++ ) { textBox1.Text += +listBox1.SelectedItems[i].ToString()+"\r\n"; //逐條讀取選中項的內容 }
ListBox單選或多選
點擊ListBox控件,在屬性一欄找到SelectionMode
屬性,亦可以代碼形式設定,屬性說明如下
- SelectionMode.None 表示不允許選中
- SelectionMode.One 表示只允許用戶選擇一項
- SelectionMode.MultiExtended 表示允許選擇多項,但選中的條目必定相連(相鄰),鼠標當選中一項后,按鍵盤↑↓可以選定一個范圍的選項,但選項不能間隔選中。如下圖:
- SelectionMode.MultiSimple 表示允許選擇多項,可以任意選中多個條目,點一下可以選中一條項目,重復點一下即取消。如下圖
原文鏈接:https://www.cnblogs.com/whuanle/p/8622830.html
相關推薦
- 2023-02-26 GoLang中panic與recover函數以及defer語句超詳細講解_Golang
- 2022-06-16 Golang項目搭配nginx部署反向代理負載均衡講解_Golang
- 2022-11-18 如何使用Python生成Hilbert矩陣_python
- 2023-07-05 Spring Boot 啟動報錯 XXX\Tomcat\apache-tomcat-9.0.65\b
- 2024-04-05 mybatis(mybatis-plus)報invalid bound statement (not
- 2022-03-07 android?studio?項目?:UI設計高精度實現簡單計算器_Android
- 2022-03-10 搭建Redis服務器步驟詳細介紹_Redis
- 2022-04-11 nginx從安裝到配置詳細說明(安裝,安全配置,防盜鏈,動靜分離,配置?HTTPS,性能優化)_ng
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支