1. 简介
和ListBox的外观类似,都可以多列显示,但 ListView 功能更强大,提供了5种不同的显示方式
2. 属性
属性 | 解释 |
---|---|
(Name) | 控件ID,在代码里引用的时候会用到 |
Enabled | 控件是否启用 |
CheckBoxes | 复选框是否显示在项旁边 |
ContextMenuStrip | 当用户右键该控件时显示的快捷菜单 |
Dock | 定义要绑定到容器的控件边框 |
Items | ListView中的项的集合 |
Alignment | ListView中各项的对齐方式:Default、Left、Top(默认)、SnapToGrid |
View | 显示项的5种不同视图: LargeIcon:大图标,添加项的时候,默认是多列显示的 SmallIcon:小图标 Details:详细信息 List:列表 Tile: |
Columns | “详细信息” 视图中显示的列![]() |
AllowColumnReorder | 是否允许用户重新排列 ”详细信息“视图中各列的顺序 |
FullRowSelect | 当项被选中时,其所有子项是否同该项一起突出显示 |
GridLines | 在项和子项周围显示网格线。仅在”详细信息“视图中显示 |
HeaderStyle | ”详细信息“视图中列标头的样式:Clickable、NonClickable、None |
AutoArrange | 在 大图标 和小图标 视图中,项是否自动进行排列,默认true |
LargeImageList | 大图标、Tile视图中,用于显示的大图标图像集合(ImageList) |
SmallImageList | 除大图标、Tile视图外所有视图中,用于显示的图标图像集合(ImageList) |
Groups | ListView中的组,集合 |
LabelEdit | 是否允许用户就地编辑项标签 |
labelWrap | 确定标签文本是否可以换到新行 |
MultiSelect | 是否允许选择多项 |
Scrollable | 如果控件包含的项过多,超出工作区的范围时,该控件是否显示滚动条 |
ShowGroups | 指示控件是否以组的形式显示项 |
ShowItemToolTips | 允许ListViewItems显示工具提示 |
Sorting | 对项进行排序的方式:None、Ascending、Descending |
StateImageList | ListView为自定义状态所使用的ImageList控件 |
CheckedIndices | 所有勾选了复选框的项的索引集合 |
CheckedItems | 所有勾选了复选框的项的集合 |
SelectedIndices | 所有选中的项的索引集合 |
SelectedIndex | 所选中的单个项的索引 |
SelectedItems | 所有选定的项 |
3. 方法
方法 | 解释 |
---|---|
BeginUpdate()和 EndUpdate() | 在大量通过Items方法加载项的时候,在加载项的语句前后分别加上 BeginUpdate() 和 EndUpdate() 语句,可以避免控件出现闪烁 |
Clear() | 清空项 |
EnsureVisible | 确保指定项在控件中是可见的,必要时滚动控件内容 |
FindItemWithText | 找到第一个指定文本开头的项 |
FindNearestItem | 按照指定的搜索方向,从指定点开始查找下一个项 |
4. 事件
事件 | 解释 |
---|---|
SelectedIndexChanged | 每当此ListView的 ”SelectedIndex“属性更改时发生 |
ColumnClick | 在单击列标头时发生 |
AfterLabelEdit | 在用户已编辑项文本时发生 |
BeforeLabelEdit | 在用户将要编辑项文本时发生 |
ItemCheck | 指示某项的选中状态将要更改,直到事件发生后,该值才会更新 |
ItemChecked | 当ListView项的Checked属性更改时引发的事件 |
ItemSelectionChanged | 当某项的选定状态更改时引发的事件 |
5. 列的集合的操作
操作 | 方法 |
---|---|
访问列 | 从集合中获取具有指定键值 / 索引值的列标题![]() |
添加列 | Add方法,可以指定键名,列名,宽度,对齐方式,图标索引 |
列的数量 | Count方法 |
设置列只读 | IsReadOnly方法 |
添加单列 | Add(ColumnHeader value) |
添加多列 | AddRange(ColumnHeader[] values) |
清空所有列 | Clear() |
判断列是否存在 | Contains(ColumnHeader value) ContainsKey(string key) |
获取列的索引 | IndexOf(ColumnHeader value) IndexOfKey(string key) |
插入列 | Insert |
移除列 | Remove(ColumnHeader column) RemoveAt(int index) RemoveByKey(string key) |
6. 项的集合的操作
操作 | 方法 |
---|---|
访问项 | 从集合中获取具有指定键值 / 索引值的项 |
设置项只读 | IsReadOnly |
项的数量 | Count |
添加项 | Add方法,可以指定键名,文本,图标索引/图标键值 |
添加项的集合 | AddRange方法 |
清除项 | Clear方法 |
判断项是否存在 | Contains(ListViewItem item) ContainsKey(string key) |
复制项 | CopyTo(Array dest, int index) |
查找项 | Find(string key, bool searchAllSubItems) |
获取项的索引 | IndexOf(ListViewItem item) IndexOfKey(string key) |
插入项 | Insert,可以设置输入项的索引、键值、文本、图像索引/图像键值 |
移除项 | Remove(ListViewItem item) RemoveAt(int index) RemoveByKey(string key) |
7. 组的集合的操作
操作 | 方法 |
---|---|
访问组 | 通过指定键值 / 索引值访问 |
组的数量 | Count |
添加组 | Add, AddRange |
清除组 | Clear |
判断组是否存在 | Contains(ListViewGroup value) |
复制组 | CopyTo(Array array, int index) |
获取组的索引 | IndexOf(ListViewGroup value) |
插入组 | Insert |
移除组 | Remove(ListViewGroup group) RemoveAt(int index) |
8. 不同的视图
- 拖控件
- 加载图像到 ImageList 组件
private void FrmListView2_Load