C#中listview怎么用?

ShadowCat1 2010-01-05 02:39:12
我在试着做一个项目,其中想用listview,请问它怎么用啊?它的添加的代码谁有啊?能帮我一下吗?谢谢
...全文
4455 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
kspaul 2011-09-23
  • 打赏
  • 举报
回复
c#的ListView是Windows应用程序中经常用到;
这里是其一个比较简单的用法;
其中:ListView为:eListView;
用法如下所示:

//程序初始设置其基本属性,注释如下,并用loadData()得到其显示内容;
//设置eListView的基本属性
//loadData()函数得到表项,并显示
private void EmailForm_Load(object sender, System.EventArgs e)
{
eListView.GridLines = true ;//显示各个记录的分隔线
eListView.FullRowSelect = true ;//要选择就是一行
eListView.View = View.Details ;//定义列表显示的方式
eListView.Scrollable = true ;//需要时候显示滚动条
eListView.MultiSelect = false ; // 不可以多行选择
eListView.HeaderStyle = ColumnHeaderStyle.Clickable;

loadData();
}

/
//清空eListView
//设置表头。
//执行数据库查询操作,得到表中所要显示的数据
//数据按行绑定到eListView

private void loadData()
{
this.eListView.Clear();

// 针对数据库的字段名称,建立与之适应显示表头
eListView.Columns.Add ( "序号" , 50, HorizontalAlignment.Center ) ;
eListView.Columns.Add ( "用户名" , 60 , HorizontalAlignment.Center ) ;
eListView.Columns.Add ( "邮件地址" , 150 , HorizontalAlignment.Center ) ;
eListView.Visible = true ;


string strSql = string.Format("select name,mailbox from mail ");
DBConnection dbcon = new DBConnection();
IDataReader read = dbcon.getRead(strSql);
int i =0;
while(read.Read())
{
i ++;
ListViewItem Item = new ListViewItem ( ) ;
Item.SubItems.Clear ( ) ;
Item.SubItems[0].Text = i.ToString() ;
Item.SubItems.Add ( read.GetString(0)) ;
Item.SubItems.Add ( read.GetString(1)) ;
eListView.Items.Add ( Item ) ;
}
dbcon.close();//关闭数据库链接
}

通过以上就可以得到相应的数据,并显示到ListView中;

以下函数是对ListView双击取数据的一个例子:

//依据事件索引和对应的列数,把相关的内容对应的显示在相关TextBox控件中
private void eListView_SelectedIndexChanged(object sender, System.EventArgs e)
{
if(this.eListView.SelectedItems.Count >0)
{
this.tbName.Text = eListView.SelectedItems[0].SubItems[1].Text;
this.tbEmail.Text = eListView.SelectedItems[0].SubItems[2].Text;
}

}
az10000nq 2011-09-23
  • 打赏
  • 举报
回复
路过,学习
yizhilong 2010-01-05
  • 打赏
  • 举报
回复
this.lvwTime.Items.Clear();
this.lvwTime.Columns.Clear();
this.lvwTime.View = View.Details;

this.lvwTime.Columns.Add("编号", 40);
this.lvwTime.Columns.Add("起始", 135);
this.lvwTime.Columns.Add("结束", 135);

for (int i = 0; i < dtName.Rows.count; i++)
{
int intCount = i + 1;
ListViewItem lvi = new ListViewItem();
lvi.Name = intCount.ToString();
lvi.Text = intCount.ToString();
ListViewItem.ListViewSubItem pSubItemStartTime = new ListViewItem.ListViewSubItem();
pSubItemStartTime.Name = "Start";
pSubItemStartTime.Text = this.dtName.Rows[i]["起始"].ToString();

ListViewItem.ListViewSubItem pSubItemTimeEndTime = new ListViewItem.ListViewSubItem();
pSubItemTimeEndTime.Name = "End";
pSubItemTimeEndTime.Text = this.dtName.Rows[i]["结束"].ToString();

lvi.SubItems.Add(pSubItemStartTime);
lvi.SubItems.Add(pSubItemTimeEndTime);
lvi.Tag = this.dtName.Rows[i];

this.lvwTime.Items.Add(lvi);
}
zhengliyan_star 2010-01-05
  • 打赏
  • 举报
回复
跟下拉列表框一样哦,
nashina 2010-01-05
  • 打赏
  • 举报
回复
1.直接绑定数据源
2.直接给控件添加子项

还有就是设置些事件,界面风格啦;
houyizhinv 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 shadowcat1 的回复:]
再次请问一楼,listviewControl是什么呢?控件?还是事件?能具体说明一下吗?谢谢
[/Quote]
是这个控件的Name
zzw709 2010-01-05
  • 打赏
  • 举报
回复
去CSDN上下些这例子,好多呢
ShadowCat1 2010-01-05
  • 打赏
  • 举报
回复
谢谢一楼以及大家 嘿嘿 哦了了
ShadowCat1 2010-01-05
  • 打赏
  • 举报
回复
再次请问一楼,listviewControl是什么呢?控件?还是事件?能具体说明一下吗?谢谢
程序小海 2010-01-05
  • 打赏
  • 举报
回复
jf
houyizhinv 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 shadowcat1 的回复:]
请问一楼,你设计的界面是什么样的啊?
[/Quote]
直接在界面上放一个LISTVIEW 把名字换成listViewControl
内容照搬
ShadowCat1 2010-01-05
  • 打赏
  • 举报
回复
请问一楼,你设计的界面是什么样的啊?
houyizhinv 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zengzhan 的回复:]
lvItem = new ListViewItem();
lvItem.Text = "文件夾2";
lvSubItem = new ListViewItem.ListViewSubItem();
lvSubItem.Text = "20";
lvItem.SubItems.Add(lvSubItem);
lvSubItem = new ListViewItem.ListViewSubItem();
lvSubItem.Text = "20080115";
lvItem.SubItems.Add(lvSubItem);
listViewControl.Items.Add(lvItem);
[/Quote]
你这样加的 做出来的效果 鼠标点的时候只能选中文件夹2 后面的20和20080115就不能选中
怎样做才能做到像任务管理器那样,点一个就能把这行全部选中呢?
mytimes_walker 2010-01-05
  • 打赏
  • 举报
回复
ListView就相当于Windows里面的我的电脑里面的文件夹打开后的视图一样。
顾名思义就是列表视图。
你可以给ListView单独添加ListViewItem,方法如下:

ListViewItem item = new ListViewItem();
item.BackColor = Color.Red;
item.Text = "我是ListViewItem";
ListView.Items.Add(item);

以上代码添加了一个背景色为红色,文本为"我是ListViewItem"的ListViewItem.
ListViewItem还有SubItems属性。
一般在使用ListView的时候,是为了数据显示更方便,所以ListView的数据是动态添加的。
wangyan3422 2010-01-05
  • 打赏
  • 举报
回复
ListViewItem lvi = new ListViewItem("第一行第一列");
lvi.SubItems.Add("第一行第二列");
lvi.SubItems.Add("第一行第三列");
lvwData.Items.Add(lvi);
lvwData为页面ListView控件ID
qqzeng-ip 2010-01-05
  • 打赏
  • 举报
回复

namespace ListViewExercise
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
ListViewSet();
CreateViewItemMethodOne();
//CreateViewItemMethodTow();
}

/// <summary>
/// ListView 設置
/// </summary>
private void ListViewSet()
{
//ListView顯示方式
listViewControl.View = View.Details;
}

/// <summary>
/// //手動填加ListView方法1
/// </summary>
private void CreateViewItemMethodOne()
{
listViewControl.BeginUpdate();
#region 增加Item的標題,共有三個列
//1、創建標題
listViewControl.Columns.Add("文件名");
listViewControl.Columns.Add("大小");
listViewControl.Columns.Add("創建日期");
#endregion

#region 手動填加ListView方法

//2、增加第一個Item,在View.Details模式下,有點像第一列中一個值
listViewControl.Items.Add("folder1","文件夾1",0);
//3、增加第一個Item的第一個SubItem,在View.Details模式下,有點像第一列中一個值
listViewControl.Items["folder1"].SubItems.Add("11");
//增加第一個Item的第二個SubItem,在View.Details模式下,有點像第一列中一個值
listViewControl.Items["folder1"].SubItems.Add("20080114");

listViewControl.Items.Add("folder2","文件夾2",0);
listViewControl.Items["folder2"].SubItems.Add("21");
listViewControl.Items["folder2"].SubItems.Add("20080115");

listViewControl.Items.Add("文件夾3");
listViewControl.Items.Add("文件夾4");

#endregion

listViewControl.EndUpdate();
}

/// <summary>
/// 手動填加ListView方法2
/// </summary>
private void CreateViewItemMethodTow()
{
#region 增加Item的標題,共有三個列
//1、創建標題,共三列
listViewControl.Columns.Add("文件名");
listViewControl.Columns.Add("大小");
listViewControl.Columns.Add("創建日期");
#endregion
listViewControl.BeginUpdate();

#region 增加第一個Item
//2、定義一個ListViewItem,在View.Details模式下,有點像第一列中一個值
ListViewItem lvItem;
//3、定義ListViewSubItem,在View.Details模式下,有點像第二列中一個值
ListViewItem.ListViewSubItem lvSubItem;

//實列化一個Item,在View.Details模式下,有點像加第一行的第一個值
lvItem = new ListViewItem();
//Item的顯示的文字
lvItem.Text = "文件夾1";
//4、Item增加到ListView控件中,即增加第一行。在View.Details模式下,有點像增加了第一個項目的第一列的第一個值
listViewControl.Items.Add(lvItem);

//實例化SubItem
lvSubItem = new ListViewItem.ListViewSubItem();
lvSubItem.Text = "10";
//5、將SubItem增加到第一個Item中,在View.Details模式下,有點像增加了第一個項目的第二列的第一個值
lvItem.SubItems.Add(lvSubItem);

lvSubItem = new ListViewItem.ListViewSubItem();
lvSubItem.Text = "20080114";
//將SubItem增加到第一個Item中,在View.Details模式下,有點像增加了第一個項目的第三列的第一個值
lvItem.SubItems.Add(lvSubItem);
#endregion

#region 增加第二個Item
lvItem = new ListViewItem();
lvItem.Text = "文件夾2";
lvSubItem = new ListViewItem.ListViewSubItem();
lvSubItem.Text = "20";
lvItem.SubItems.Add(lvSubItem);
lvSubItem = new ListViewItem.ListViewSubItem();
lvSubItem.Text = "20080115";
lvItem.SubItems.Add(lvSubItem);
listViewControl.Items.Add(lvItem);
#endregion

listViewControl.EndUpdate();
}
}
}

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧