listview控件怎么用(自定义listview控件)

http://www.itjxue.com  2023-02-09 18:45  来源:未知  点击次数: 

Listview怎么用

以下是一些基础,想了解更多的知识,请看这篇博客

加油吧,希望能帮到你

ListView 基础

ListView 是模板驱动的控件,这意味着它默认情况下不会呈现任何数据——您必须以模板的形式完全指定希望它呈现的 HTML。与大多数模板控件类似,ItemTemplate 将成为您工作的重点,您需要将绑定数据集中每一行不断重复的 HTML 内容放在 ItemTemplate 里。

ListView 中的新功能,也是它与其它控件的真正不同之处在于引进了 LayoutTemplate。在 LayoutTemplate 中,您可以将要输出的顶级 HTML 定义为控件呈现的内容。例如,如果希望 ListView 作为表格呈现,则可以在 LayoutTemplate 中包含顶级 table 和 thead 元素,把行和单元格的呈现留给 ItemTemplate,如图 1 所示(在本示例中,绑定的数据源将显示包含电影标题和发行日期的简单表格)。图 2 显示了浏览器呈现。

Figure 1 Using LayoutTemplate and ItemTemplate

复制代码

asp:ListView runat="server" ID="_simpleTableListView" DataSourceID="_moviesDataSource" LayoutTemplate table thead tr thID/th thTitle/th thRelease Date/th /tr /thead tbody asp:PlaceHolder runat="server" ID="itemPlaceholder" / /tbody /table /LayoutTemplate ItemTemplate tr td%# Eval("movie_id") %/td td%# Eval("title") %/td td%# Eval("release_date", "{0:d}") %/td /tr /ItemTemplate/asp:ListView

vb中控件listview的详细使用

1、首先,点击文件-新建-项目,打开项目创建视窗,切换到Visual Basic,选择Windows窗体应用程序,新建一个。

2、在左侧工具箱中找到ListView控件,单击并在右侧窗体中创建一个。

3、点击ListView控件右上角的小按钮,展开ListView任务面板,点击编辑项,打开ListViewItem集合编辑器。

4、新建一个按钮,在按钮的事件响应函数中写下MsgBox(ListView1.ToString()),ListView的ToString函数返回的是这个控件的信息,如图。

5、如果要获取所有item的信息,使用For Each循环遍历item如下。

6、这样把每个列表元素的ToString等信息存到tps字符串,显示出来如图。

listview控件用法?

使用ListView控件的属性。首先我们在创建好的window窗体中拖入一个ListView控件。在columns集合里添加我们要显示的盘符C盘,D盘,E盘,图片自己可以网上找添加上,如下图:

添加ImageList控件保存图片。在使用ListView控件,我们需要使用图片,在C#中有个专门保存图片的控件叫ImageList控件,我们把控件拖到窗体里。使用ImageList控件保存的图片通过索引完成。

详细信息视图转换的实现。使用ListView控件和ImageLisrt控件实现下面的效果,对于列标题的实现我们可以在Columns属性框里修改。

使用快捷菜单功能。我们在对电脑资源管理器进行试图切换时,经常使用右键各项功能。我们在工具栏里拖入一个ContextMenuStrip控件在窗体上,添加名称:大图标,小图标,详细信息。

使用代码向ListView中添加数据。使用代码实现动态的添加数据然后当视图切换到详细烈表示显示如下的效果,先分析如何实现呢?

实现动态向ListView添加数据步骤。上面使用的是静态手动填写的数据,我们如何使用代码动态添加数据呢,步骤是怎样实现的呢?大家看看实现的步骤:

设置ListView的视图。当我们添加完数据后,我们需要设置ListView的视图这样我们才能在ListView空间上看到显示的数据。

创建项,添加项和子项。使用方法动态添加数据,我们在ListView中使用add()方法实现添加数据的功能

如何使用ListView

ListView控件的最基本用法是在窗体中以表格形式显示数据,是应用非常广泛的一个窗体控件。控件工具箱在初始状态下是没有ListView控

件的,需要我们在工具-附加控件中勾选"Microsoft ListView Control,Version

6.0",这样ListView控件就会显示在控件工具箱中了。ListView分为表头和数据两部分,而数据部分的第一列和其他列又是分开的,需要用不

同的方式来访问。假设我们在Sheet1中有一个5行4列的表格,现在我们看下怎样将这个表格中的数据导入到ListView控件中。

下面我们先来看怎样给ListView控件添加表头。有两种方法,先来看第一种

Private Sub UserForm_Initialize()

ListView1.ColumnHeaders.Add 1, "A", "姓名", ListView1.Width / 4, lvwColumnLeft '列数,key,text,宽度,对齐方式,图片

ListView1.ColumnHeaders.Add 2, "B", "性别", ListView1.Width / 4, lvwColumnCenter

ListView1.ColumnHeaders.Add 3, "C", "年龄", ListView1.Width / 4, lvwColumnCenter

ListView1.ColumnHeaders.Add 4, "D", "住址", ListView1.Width / 4, lvwColumnCenter

ListView1.View = lvwReport '显示方式

ListView1.FullRowSelect = False '是否整行选取

ListView1.Gridlines = True '是否显示表格线

End Sub

添加表头的第一种方法是用ColumnHeaders.Add的方法,该方法包括6个参数,比如上面第一行代码中1代表第一列,"A"是该列的一个

简称(不写也可以),“姓名”是要显示的文字,下一个参数是宽度,这里我们一共4列,所以第一列宽度设为控件宽度(ListView1.Width)的

1/4,第5个参数是对齐方式,其中第一列必须是左对齐的,其他列可以设置左右或居中对齐,第6个参数是图标索引,我们后面再讲,这里其中所有的参数都是

可省略的,一般写上显示的文字和宽度即可。ListView1.View是设置ListView控件的显示方式,一共四种,这里lvwReport是报表

形式显示,其他的我们后面再讲。FullRowSelect是指可否整行选取,Gridlines是否显示网格线,这些属性自己试下就知道了。

当然我们也可以用循环的方式来简化代码

Private Sub UserForm_Initialize()

Dim i

For i = 1 To 4

ListView1.ColumnHeaders.Add i, , Cells(1, i), ListView1.Width / 4

Next

ListView1.FullRowSelect = True

ListView1.View = lvwReport

ListView1.Gridlines = True

End Sub

对列加了个For循环而已,其实是完全相同的。

下面我们来看怎样向ListView控件中添加数据。两种方法,下面来看第一种

Private Sub CommandButton1_Click()

Dim itm As ListItem, i, List, li

ListView1.ListItems.Clear '清除数据

For i = 2 To 5

Set itm = ListView1.ListItems.Add '添加一个空行

itm.Text = Cells(i, 1) '添加第一列

itm.SubItems(1) = Cells(i, 2) '添加第二列

itm.SubItems(2) = Cells(i, 3)

itm.SubItems(3) = Cells(i, 4)

Next

End Sub

当然添加新数据之前要把原有数据先删除,用的是ListItems的Clear方法ListItem对象就是控件的行。先用ListItems的

Add方法添加一个空行,用变量itm来表示,下面就要向这个空行中添加数据,我们上面说过第一列和其他列的表示方法是不同的,第一列赋值要用Text,

之后各列用SubItems数组来赋值,第2列序号是1,第3列序号是2,依次类推。

下面来看添加数据的另一种方法,ListSubItems对象

' For i = 2 To 5

' Set List = ListView1.ListItems.Add(Text:=Cells(i, 1))

' Set li = List.ListSubItems.Add(Text:=Cells(i, 2)) 'subitems是个数组,Listsubitems是个对象集合

' Set li = List.ListSubItems.Add(Text:=Cells(i, 3))

' Set li = List.ListSubItems.Add(Text:=Cells(i, 4))

' Next

前面都一样,我只把For循环这段贴出来了,同样是用ListItems.Add新建一个空行,不同的是直接给其赋了一个值,这个值就是赋在第一列

的,之后又用List(刚添加的空行)的ListSubItems的Add方法,相当于在该行添加一个列,再赋值,有几列就添加用个

ListSubItems。ListSubItems和SubItems的区别在于前者是一个对象集合,既然是对象就有可以设置格式(可以和工作表的

Range对象类比),而后者仅仅是一个数组,因此也就不存在格式之类的属性了,所以如果需要给ListView控件改变格式就要用

ListSubItems对象。

tkintwr中listview如何添加数据

ListView控件数据操作一、添加表头和数据

在窗口显示数据时,经常会用到ListView这个控件,虽然也可以使用ListBox,但其功能还是比较弱一些,ListView相对用起来更顺手一些。下面的两个函数是给控件添加表头和数据的函数,贴出来供大家参考。

函数代码给ListView添加数据,数据可以为数组或单行数据(逗号分隔)

Public Sub AddListViewData(ListViewName As Object, DateArr, Optional Header As Integer = 0, Optional AddData As Boolean = False)

'添加ListView数据,正常为数组,支持单行数据添加(逗号分隔)

'第一行数据为标题行时,Header应为1

'默认为替换数据,如果需要在原有数据基础上添加时,AddData应为True

Dim i As Integer, j As Integer

Dim DateCol() As String

Dim Itm As Object

Dim PartKey As String

If Not AddData Then ListViewName.ListItems.Clear

If IsArray(DateArr) Then

For i = LBound(DateArr) + Header To UBound(DateArr)

Set Itm = ListViewName.ListItems.Add()

Itm.Text = DateArr(i, LBound(DateArr, 2))

For j = LBound(DateArr, 2) + LBound(DateArr) To UBound(DateArr, 2)

Itm.SubItems(j - LBound(DateArr)) = DateArr(i, j)

Next

Next

Else

If IsEmpty(DateArr) Or DateArr = "没有记录" Then Exit Sub

DateCol = Split(DateArr, ",")

Set Itm = ListViewName.ListItems.Add()

Itm.Text = DateCol(LBound(DateCol))

For i = LBound(DateCol) + LBound(DateArr) To UBound(DateCol)

Itm.SubItems(i - LBound(DateArr)) = DateCol(i)

Next

End If

End Sub

给ListView添加表头,支持直接给定宽度和额外增加的宽度

Public Sub AddListViewHead(ListViewName As Object, ColHeader, Optional ColWidth As String, Optional AddWidth As Integer = 5, Optional DefultWidth As String = "Auto")

Dim SpHeader() As String

Dim SpWidth() As String

Dim SpAlign() As String

Dim CW As Integer

Dim CA As Integer

Dim i As Integer

ListViewName.ColumnHeaders.Clear

ListViewName.ListItems.Clear

SpWidth = Split(ColWidth, ",")

If UBound(SpWidth) = 0 Then CW = Val(ColWidth)

With ListViewName

If IsArray(ColHeader) Then

For i = LBound(ColHeader, 2) To UBound(ColHeader, 2)

If i = UBound(SpWidth) Then CW = Val(SpWidth(i)) Else CW = IIf(DefultWidth = "Auto", 0, CW)

If CW = 0 And CW Len(StrConv(ColHeader(0, i), vbFromUnicode)) * 15 + AddWidth Then CW = Len(StrConv(ColHeader(0, i), vbFromUnicode)) * 15 + AddWidth

If CW 0 Then CW = 0

.ColumnHeaders.Add , , ColHeader(0, i), CW

Next

Else

If ColHeader = "操作不成功" Then Exit Sub

SpHeader = Split(ColHeader, ",")

For i = LBound(SpHeader) To UBound(SpHeader)

If i = UBound(SpWidth) Then CW = Val(SpWidth(i)) Else CW = IIf(DefultWidth = "Auto", 0, CW)

If CW = 0 And CW LenB(StrConv(SpHeader(i), vbFromUnicode)) * 7.5 + AddWidth Then CW = LenB(StrConv(SpHeader(i), vbFromUnicode)) * 7.5 + AddWidth

If CW 0 Then CW = 0

.ColumnHeaders.Add , , SpHeader(i), CW

Next

End If

.View = lvwReport

.FullRowSelect = True

.Gridlines = True

End With

End Sub

调用例子

Sub FormLoad()

AddListViewHead 列表, Range("A1:D1").Value

tmp = SumArrRow(Range("a1:c4").Value, "1,3", True)

AddListViewData 列表, tmp

End Sub

android中listview怎么用?

创建继承BaseAdapter并实现其抽象方法的类MyListViewAdapter

说明

下面的讲解中,只创建自定义的适配器类,如何使用请参考android中常用控件的使用之ListView

1.创建类MyListViewAdapter

创建类MyListViewAdapter,该类继承BaseAdapter,并实现其抽象方法:

1

2

3

4

int getCount();

Object getItem(int position);

long getItemId(int position);

View getView(int position,View convertView,ViewGroup parent);

getCount需要返回有多少个item,也就是说最会在listview中展示这么多行

getItem需要返回参数position位置的数据

getItemId返回position就行了

2.给MyListViewAdapter类添加成员变量和构造方法

两个成员变量

1

2

ListString list;

Context context;

list表示要显示的数据,context变量在生成View对象时需要用到

构造方法:构造方法是为了给两个成员变量赋值

1

2

3

4

public MyListViewAdapter(ListString list , Context context) {

this.list = list;

this.context = context;

}

3.给getCount,getItem,getItemId方法添加代码

getCount需要返回有多少个item,也就是说最会在listview中展示这么多行,所以返回list.size

getItem需要返回参数position位置的数据,也就是list中第position项的值list.get(position)

getItemId返回position就行了

1

2

3

4

5

6

7

8

9

10

11

12

13

14

@Override

public int getCount() {

return list.size();

}

@Override

public Object getItem(int position) {

return list.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

4.给getView方法添加代码

getView方法是返回位置为position的View对象,第二个参数convertView考虑到资源重用问题,在上下滑动的过程中,需要显示某项的时候才会调用getView方法,而如果有某项被隐藏不显示,就会把不显示那一行的View作为convertView参数传入,如果没有某项被隐藏,convertView值为null。可以通过下面代码中的if(convertView!=null)中的输出来看哪一行被隐藏了。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

@Override

public View getView(int position, View convertView, ViewGroup parent) {

System.out.println("调用getView方法,显示position="+position+"项");

if(convertView!=null){

TextView t = (TextView) convertView.findViewById(R.id.firstTextView);

System.out.println(t.getText());

}else{

LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

convertView = layoutInflater.inflate(R.layout.item_mylistviewadapter, null);

}

TextView t = (TextView)(convertView.findViewById(R.id.firstTextView));

t.setText(list.get(position));

if(position%2==0)

{

t.setBackgroundColor(Color.WHITE);

}

else{

t.setBackgroundColor(Color.GRAY);

}

return convertView;

}

补充:通过xml生成View对象

通过Context对象生成一个LayoutInflater对象

调用LayoutInflater对象的inflate方法生成控件对象,inflate方法的第一个参数为xml文件,第二个参数一般为null。返回值为该xml文件最外层的标签对象。

1

2

LayoutInflater layoutInflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

LinearLayout convertView =(LinearLayout)layoutInflater.inflate(R.layout.item_mylistvie

源代码下载

pan.baidu.com/s/1ntuQDdv

(责任编辑:IT教学网)

更多

推荐微信营销文章