DataGridView控件功能十分强大,显示表格也方便,但性能就没有那么高;
ListView控件功能没那么强大,显示表格也要多写代码,但性能相对高一些。
以下我总结出一系列对于ListView表格的详细代码解析:
1.首先我们需要先创建一个ListView表格必备的属性设定。
this.ListView.GridLines = true; //显示表格线
this.ListView.View = View.Details;//表格在窗体显示细节的格式,如果做成表格,这个视图必须选择Details
this.ListView.Scrollable = true;//滚动条
this.ListView.HeaderStyle = ColumnHeaderStyle.Clickable//表头样式
this.ListView.FullRowSelect = true;//表示在控件上,是否可以选择一整行
基本以上属性更改后,形成一个基本完整的表格控件。在针对自己不同的需求可以在设置以下不同功能的属性。
this.ListView.LabelEdit = true;//是否可编辑,ListView只可编辑第一列。
this.ListView.MultiSelect = true;//是否可以选择多个项。
this.ListView.HotTracking = true;
/*当鼠标指针经过某个项或者子项的文本时,文本的外观是否变成超链接形式。当选择此属性时则**HoverSelection**自动为true和**Activation**属性为oneClick*/
this.ListView.HoverSelection = true;//该鼠标指针在该项停留几秒后自动选中。
this.ListView.Activation = ItemActivation.Standard;//激活某一项时,必须执行的操作是(如:双击项或者单击项)
2.基本的表格属性设置完成后,首先要创建表头,即使每一列的列标题名称。
ListView.Columns.Add("序号");
ListView.Columns.Add("姓名");
ListView.Columns.Add("性别");
ListView.Columns.Add("电话");
ListView.Columns.Add("部门");
ListView.Columns.Add("入职时间");
3.表头创建完成后,那么就要给表格里面添加数据信息了。
给表格添加数据有两种实现代码:
⑴一种是运用数组去Fill
⑵另一种则需实例一个ListViewItem去Fill。
首先先说第一种的代码形式:
//用表示子项的字符串数组初始化 System.Windows.Forms.ListViewItem 类的新实例。
//items: -> 表示此新项的子项的字符串数组。
public ListViewItem(string[] items);
ListViewItem[] lvi = new ListViewItem[3];//声明一个ListViewItem的数组
lvi[0] = new ListViewItem(new String[] {
"值1","值2","值3","值4","值5"});
lvi[1] = new ListViewItem(new String[] {
"值1","值2","值3","值4","值5"});
//...........
this.ListView.Items.AddRange(lvi);
第二种的代码形式:
ListViewItem lvi = new ListViewItem();//实例化一个ListViewItem项
this.ListView.BeginUpdate();//挂起
lvi.SubItems[0].Text = (ListView.Items.Count + 1).ToString;//母项第一列
lvi.SubItems.Add(TextBox1.Text.Trim());//母项第二列
lvi.SubItems.Add(TextBox2.Text.Trim());//母项第三列
//.....
this.ListView.EndUpdate();//恢复
this.ListView.Items.Add(Lvi);//添加到ListView集合中
其中第二种添加数据信息的方式需要在前后添加添加Begin… 和End…防止界面自动刷新。
在上面第二种增加的方式中可以在进行改变一下。如:
ListViewItems lvi = ListView.Items.Add((ListView.Items.Count + 1).ToString());//第一列
lvi.SubItems.Add(TextBox.Text.Trim());
4.基本一个标准的表格就完成了。下面我们来讨论一下,怎么利用ListView来对现有的这个表进行,删除,修改的三大功能呢?
Ⅰ、我们先来讨论下如何对表进行指定一行的修改。
首先必须设定一个“是否选中一行的属性”,ListView.FollRowSelec设置为True;
然后我们进行整行更新,在窗体界面上输入新的一行数据,在选中需要更改的那一行的信息。在点击修改按钮进行更新。
演示代码如下:
if(ListView.SelectedItems.Count>0)
{
ListView.SelectedItems[0].SubItems[1].Text = TextBox1.Text;
ListView.SelectedItems[0].SubItems[2].Text = TextBox2.Text;
//.........
}
以上代码更新选中那一行信息。
但这样如果只修改一个子项的值,但需要全部数据进行更新岂不是很麻烦?需要全部信息重新输入一遍。
那么如何针对某一个子项进行修改而其他子项信息不被清除呢?
博主写了一套自己执行过程的代码。
if(ListView.SelectedIndices