我在试着做一个项目,其中想用listview,请问它怎么用啊?它的添加的代码谁有啊?能帮我一下吗?谢谢
解决方案 »
- GDI+ 画图如何清除
- c# 使用SHDocVw.InternetExplorer,加载一个网页,BeforeNavigate2和DocumentComplete会被多次调用的问题
- 关于获取本机Ip地址
- 谁是 箫心IT乐园会员啊?给我发个邀请码哎,或者帮下一个文件
- 一段数据,很多接口传输中都见过,具体是什么意思?请高手指点一下!
- 谁帮我分析一下以下代码:winform程序,抓网页的
- 基础思路题,基本上是白送分
- 日期的问题啊
- 关于.NET framework 1.1
- 我想用CSC命令,怎样配置环境变量???让我可以用命令行方式编译.在线等待.
- 求助 winform 中右键菜单的一个问题
- 高内聚和低耦合设计原则
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();
}
}
}
lvi.SubItems.Add("第一行第二列");
lvi.SubItems.Add("第一行第三列");
lvwData.Items.Add(lvi);
lvwData为页面ListView控件ID
顾名思义就是列表视图。
你可以给ListView单独添加ListViewItem,方法如下:ListViewItem item = new ListViewItem();
item.BackColor = Color.Red;
item.Text = "我是ListViewItem";
ListView.Items.Add(item);以上代码添加了一个背景色为红色,文本为"我是ListViewItem"的ListViewItem.
ListViewItem还有SubItems属性。
一般在使用ListView的时候,是为了数据显示更方便,所以ListView的数据是动态添加的。
内容照搬
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);
}
这里是其一个比较简单的用法;
其中: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
//设置表头。
//执行数据库查询操作,得到表中所要显示的数据
//数据按行绑定到eListViewprivate 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;
}}