//ListView标头的代码创建方法。
ColumnHeader title=new ColumnHeader(); //声明标头,并创建对象。
title.Text="标头1名称"; //标头一显示的名称。
title.Width=120; //标头一名称 的宽度。
this.listView1.Columns.Add(title); //将标头添加到ListView控件。
title=new ColumnHeader(); //注意,如果创建新标头必须 使用New创建新对象。
title.Text="标头2名称";
this.listView1.Columns.Add(title); //标头2我只设置名称,未设置宽度,这是允许的。
//ListView控件中项的建立
ListViewItem lvItem; //ListViewItem 成员,初学者可以暂时把该项理解为在Details模式中的一整行信息
ListViewItem.ListViewSubItem lvSubItem; //表示 ListViewItem 的子项,也就是ListViewItem一行中的一列信息。
lvItem=new ListViewItem();
lvItem.Text="第一列信息";
lvItem.Tag="与该项相关联的信息的对象"; //Tag可以付任何对象的值,比如字符串,数值型...我经常用该项保存调用数据库时不用显示的编号信息。
lvItem.ImageIndex=0; //如果你添加了imageslist控件并设置了关联,在此可以选择需要显示的图标。
lvSubItem=new System.Windows.Forms.ListViewItem.ListViewSubItem();
lvSubItem.Text="第二列信息"; //声明及设置Item的子项。
lvItem.SubItems.Add(lvSubItem); //将子项添加到Item中。
//如果需要添加第2,3.....个子项需要重复上面的代码,声明一个添加一个。如:
//lvSubItem=new System.Windows.Forms.ListViewItem.ListViewSubItem();
//lvSubItem.Text="第三列信息";
//lvItem.SubItems.Add(lvSubItem);
//一点建议:在添加ListView中项的时候如果项较多可以使用
//this.listView1.BeginUpdate();
//......(添加Item项代码).
//this.listView1.EndUpdate();
//以便添加完项目后一次更新ListView控件。
//下面介绍ListView控件读取当前选择行的代码
private void listView1_Click(object sender, System.EventArgs e) //ListView控件点击事件
{
if(this.listView1.SelectedItems!=null) //判断ListView控件是否有项目选中
{
this.label5.Text=this.listView1.SelectedItems[0].Tag.ToString(); //读取Item中的Tag信息。
this.textBox1.Text=this.listView1.SelectedItems[0].SubItems[1].Text ; //读取Item子项信息。
this.textBox2.Text=this.listView1.SelectedItems[0].SubItems[2].Text;
this.textBox3.Text=this.listView1.SelectedItems[0].SubItems[3].Text;
}
}
//在这里对SelectedItems属性介绍一下,该属性代表ListView选中的行,
//[0]就是选中的第一个,因为ListView控件允许一次选中多个行,
//所以[0]代表第一个选中,[1]代表二个选中,依次类推。
//SelectedItems.Count属性可返回目前选中行的数目。
//SelectedItems[0].SubItems[1]中SubItems代表的就是Item的子项,也就是上面代码
//lvSubItem=new System.Windows.Forms.ListViewItem.ListViewSubItem();
//lvSubItem.Text="第二列信息";
//创建的内容。
//最后介绍一个常用的就是当前选择项的删除。
if(this.listView1.SelectedItems!=null)
{
this.listView1.SelectedItems[0].Remove();
}
//提示:在读取和删除中如果需要多重选择的项进行处理可以使用For循环,如for(int i=0;i<SelectedItems.Count;i++)。