C#ListView控件的属性和实际操作
常⽤属性:
View设置或返回控件的视图类型
值说明
1-LvwIcon 图标类型
2-LvwSmallIcon ⼩图标类型
3-LvwList 列表类型
4-LvwReport 报表类型
Arrange 设置后返回控件的图标排列⽅式(在图标视图下有效)
值说明
1-LvwNone 不排列
2-LvwAutoLeft ⾃动靠右排列
3-LvwAutoTop ⾃动靠左排列
Icons、 SmallIcons、 ColumnHeaderIcons属性
Icons指定图标视图时的图标与ImageList的绑定
SmallIcons、 ColumnHeaderIcons指定列表视图时的图标与ImageList的绑定
PICTURE、PictureAlignment属性
分别指定ListView控件的背景图⽚和布局⽅式 ListItems(Index) 属性
ListItems 属性是ListView控件中列表项的集合。
Index⽤于指定列表项集合中的⼀个对象,我们可以把这个对象看作对⼀⾏的引⽤ ListItems集合的属性
1. Text 设置或返回显⽰⽂本
2. key 关键字
3. index 索引编号
4. icon , smallicon 不同视图时显⽰单元格的图标
5. checked 给checkboxes 打√
6. selected 使处于选定状态
7. ListSubitems(index)集合我们可以把这个集合看作对这⾏中单元格的引⽤ Text 设置或返回单元格显⽰的内容 Reporticon 设置单元格的图标
8. Subitems(index) 设置或返回单元格⽂本 == ListSubitems(index).text ColumnHeaders(index) 属性
ColumnHeaders 属性是ListView控件中列标头的集合
1. text 显⽰标题⽂本
2. key
3. index
4. icon 指定标题图标
5. alignment 指定index列的对齐⽅式(注意:第⼀列也就是列表项不能指定)
6. position 返回当前列的索引
7. subitemindex 返回指定列的listsubitem索引 TextBackgroud 属性
决定text的背景是透明还是ListView的背景⾊值 0 lvwTransparent 透明 1 lvw 不透明(⽤listview的背景⾊)
Ghosted 属性 logic 决定是否虚状 HideColumnHeaders 属性
隐藏表头 LabelWrap 属性标签转⾏ View.LargeIcon 或 View.SmallIcon 时才使⽤该属性 FullRowSelect 整⾏显⽰
HotTracking 热点追踪⿏标指针⾃动调整为⼿型 HoverSelection 属性⾃动聚焦⿏标指针⾃动调整为⼿型 AllowColumnReorder属性
值设置.t.时,⽤户可以⽤⿏标选中1列拖⾄其他地⽅进⾏重新排列 Sorted属性当值为.t.时,
列表按字母排序常⽤⽅法:
ListItems.add(index,key,text,icon,smallicon) 向listitems添加⼀列表项。
Index 插⼊列表项的编号 Key 插⼊列表项的关键字
Text 插⼊列表项的⽂本 Icon 当为图标视图时要求显⽰的图标
Smallicon 当为⼩图标视图时要求显⽰的图标 Clear
清除listitems集合中所有的列表项 Remove清除选定⾏ L1=thisform.view1 ve(L1.selectedItem.index) AllowColumnReorder 属性
值设置.t.时,⽤户可以⽤⿏标选中1列拖⾄其他地⽅进⾏重新排列常⽤事件:
AfterLabelEdit 编辑当前选择的列表对象之后发⽣ BeforeLabelEdit 编辑当前选择的列表对象之前发⽣
ItemClick 单击某⼀列表对象时发⽣参数 item 对当前列表项的引⽤事件 AfterLabelEdit:编辑ListItem对象的标签时被触发。BeforeLabelEdit:编辑ListItem对象的标签后出发。 ColumnClick:单击列标题时触发。参数中可以获得被单击的列对象。通常⽤于排序。ItemClick:单击某⾏或某ListItem时触发。参数中可以获得被单击的ListItem对象。⽅法 FindItem:搜索ListItem对象。
参数: string:搜索字符串。 value:在ListItem的哪部分中搜索(LvwText、LvwSubItem、LvwTag);index:开始搜索的位置。
match:匹配⽅式。 HitTest:检索位于特定坐标处的ListItem对象。 vb 中的实例 Private Sub Form_load() '确保ListView控件的view属性为报表视图。
ListView1.View=lvwReport '添加三列。 ListView1.ColumnHeaders.Add,"Name","姓名" ListView1.ColumnHeaders.Add,"Sex","性别" ListView1.ColumnHeaders.Add,"Age","年龄" '向控件添加ListItem对象。 Dim itmX As ListItem '添加column1的名称。
Set itmX=ListView1.ListItems.Add(1,"ZL","张⼒") '使⽤SubItemIndex将SubItem与正确的ColumnHeader关联。
使⽤关键字("Sex")指定正确的ColumnHeader。
itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男" '使⽤ColumnHeader关键字将SubItems字符串与 '正确的ColumnHeader关联。
itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="19" Set itmX=ListView1.ListItems.Add(1,"LF","李芳")
itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"
itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="22" Set
itmX=ListView1.ListItems.Add(1,"WW","王伟") itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"
itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="24" End Sub Private Sub ListView1_ColumnClick(ByVal ColumnHeader As
ComctlLib.ColumnHeader) Select Case ColumnHeader.Key Case "Sex":
ListView1.SortKey=1 ListView1.SortOrder=lvwAscending ListView1.Sorted=True Case "Age":
ListView1.SortKey=2 ListView1.SortOrder=lvwAscending ListView1.Sorted=True End Select End Sub
例⼆ Private Sub UserForm_Initialize() ListView1.ColumnHeaders.Add , ,
"QQ号" '添加QQ号列 ListView1.ColumnHeaders.Add , ,
"呢称" '添加呢称列 ListView1.ColumnHeaders.Add , ,
"来⾃何处" '添加来⾃何处列 ListView1.View = lvwReport ''设置显⽰⽅式为报表格式 End Sub 代码说明:
1、在⼯作表中⽤Column表⽰列。⽽在Listview控件中,⽤ColumnHeaders对象来操作列,⽽添加新的列可以⽤ColumnHeaders对象的ADD⽅法。
具体如下:
ListView1.ColumnHeaders.Add 序号,唯⼀的字符串标识,列标显⽰⽂字,列宽,列的内容对齐⽅式,所使⽤的图标序号。
如本例中:
ListView1.ColumnHeaders.Add , ,"QQ号"
2、Listview控件的View 属性决定着它的显⽰的⽅式,
具体如下:
ListView1.View = lvwIcon '图标显⽰
ListView1.View = lvwSmallIcon '⼩图标显⽰
ListView1.View = lvwList '列表显⽰
ListView1.View = lvwReport '报表显⽰
添加效果:⽰例⽂件:
代码: Private Sub UserForm_Initialize() '声明变量类型 Dim ITM As ListItem '添加QQ号列,
列宽占总宽度的三分之⼀,左对齐 ListView1.ColumnHeaders.Add ,
, "QQ号", ListView1.Width / 3, lvwColumnLeft '添加呢称列,
列宽占总宽度的三分之⼀,居中对齐 ListView1.ColumnHeaders.Add ,
, "呢称", ListView1.Width / 3, lvwColumnCenter '添加来⾃何处列,
列宽占总宽度的三分之⼀,右对齐 ListView1.ColumnHeaders.Add ,
, "来⾃何处", ListView1.Width / 3, lvwColumnRight '设置显⽰⽅式为报表格式 ListView1.View = lvwReport '显⽰表格线
ListView1.Gridlines = True '设置循环,填充记录 For i = 1 To [A65536].End(xlUp).Row '添加记录 Set ITM = ListView1.ListItems.Add() '添加记录的⾏标题定义产⽣⼀个新记录,新⾏ ITM.Text = Cells(i, 1) '添加记录的记录⽂本说明 ITM.SubItems(1) = Cells(i, 2) '
添加记录的第⼀个字段的内容,在第⼆列上显⽰ ITM.SubItems(2) = Cells(i, 3) Next i End Sublistview控件在哪里
代码说明:
1、ListView1的Gridlines属性为True时显⽰表格线,为False不显⽰表格线。
2、在ListView控件中,添加记录要通过ListItems集合对象来实现,如本例中Set ITM = ListView1.ListItems.Add()
3、设置第⼀列的内容是通过text属性来添加,⽽以后各列的添加则通过SubItems对象来实现。
第2列为SubItems(1)
第3列为SubItems(2)..........
4、在Listview控件第1列只能左对齐,⽽不能采取其他对齐⽅式
5、单元格引⽤:CELLS(⾏,列)增加列 listView1.ColumnHeaders.Add 增加⾏ listView1.ListItems.Ad
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ListView
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void butzengjia_Click(object sender, EventArgs e)
{
listView1.Items.Add(txbxingming.Text);
listView1.Items[listView1.Items.Count - 1].SubItems.Add(txbxingbie.Text); listView1.Items[listView1.Items.Count - 1].SubItems.Add(txbnianling.Text); listView1.Items[listView1.Items.Count - 1].SubItems.Add(txbminzu.Text); txbxingming.Text = "";
txbxingbie.Text = "";
txbnianling.Text = "";
txbminzu.Text = "";
}
private void butshanchu_Click(object sender, EventArgs e)
{
for (int i = 0; i < listView1.Items.Count; i++)
{
if (listView1.Items[i].SubItems[0].Text == txbxingming.Text)
listView1.Items.RemoveAt(i);
}
txbxingming.Text = "";
txbxingbie.Text = "";
txbnianling.Text = "";
txbminzu.Text = "";
}
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论