C# listview 用法

来源:互联网 发布:淘宝招商平台怎么进入 编辑:程序博客网 时间:2024/05/22 17:32

private void InitListView(ListView ListView)
        {
            //添加列头
            ColumnHeader ch1 = new ColumnHeader();
            ch1.Width = 100; //列标头宽
            ch1.Text = "学号"; //列标头名称
            ColumnHeader ch2 = new ColumnHeader();
            ch2.Width = 100;
            ch2.Text = "姓名";
            listView1.Columns.Add(ch1);//在同一行上添别的列(此处一行共两列)
            listView1.Columns.Add(ch2);

            //设置属性
            listView1.GridLines = true;//显示网格线
            listView1.FullRowSelect = true;//是否全行选择
            listView1.HideSelection = false;//失去焦点时显示选择的项
            listView1.HoverSelection = true;//当鼠标停留数秒时自动选择项
            listView1.MultiSelect = false;//设置只能单选

            ImageList li = new ImageList();
            li.Images = new Size(80, 80);//指定图标的大小
            li.Images.Add(Image.FromFile("pen.jpg"));//添加图标
            li.Images.Add(Image.FromFile("box.jpg"));
            li.Images.Add(Image.FromFile("file.jpg"));
            listView1.LargeImageList = li;//设置大图标的集合

            ImageList sm = new ImageList();
            sm.ImageSize = new Size(30, 30);//指定图标大小
            sm.Images.Add(Image.FromFile("pen.jpg"));
            sm.Images.Add(Image.FromFile("box.jpg"));
            sm.Images.Add(Image.FromFile("file.jpg"));
            listView1.SmallImageList = sm;//设置小图标

            //添加项
            ListViewItem lv = new ListViewItem("钢笔");//第一列的记录为钢笔
            lv.SubItems.Add("001");//添加第二列的内容为001
            lv.SubItems.Add("派克");//添加第三列的内容
            lv.ImageIndex = 0;//指定图像的索引
            listView1.Items.Add(lv);
        }
        把 void InitListView(ListView ListView)添加到
            public Form1 ()
            {
               
            InitializeComponent();
            InitListView(this.listView1);

            }

例:

private void InitListView(ListView ListView)
        {
            ColumnHeader h1 = new ColumnHeader();
            h1.Width = 85;
            h1.Text = "编号";
            ColumnHeader h2 = new ColumnHeader();
            h2.Width = 100;
            h2.Text = "名称";
            ColumnHeader h3 = new ColumnHeader();
            h3.Width = 100;
            h3.Text = "单价";
            listView1.Columns.Add(h1);
            listView1.Columns.Add(h2);
            listView1.Columns.Add(h3);
            listView1.View = View.Details;
            listView1.GridLines = true;
            listView1.FullRowSelect = true;
        }

显示选中行的字段值

void listView_SelectedIndexChanged(object sender,EventArgs e) //当列表中的索引改变时引发此事件

{

   //通过SubItems来访问其他列的属性

//必须在listview1中有选中项

listView1.SelectedItems[0].SubItems[1].Text;+"\n" //0为行号(可选多行时),1为列为(第二列,第一列0)

}

记问listview中所有的记录

添加记录时必这样添加 

ColumnHeader h1 = new ColumnHeader();
            h1.Width = 85;
            h1.Text = "编号";
            ColumnHeader h2 = new ColumnHeader();
            h2.Width = 100;
            h2.Text = "名称";
            ColumnHeader h3 = new ColumnHeader();
            h3.Width = 100;
            h3.Text = "单价";
            listView1.Columns.Add(h1);
            listView1.Columns.Add(h2);
            listView1.Columns.Add(h3);
这样是添加了3个字段,三条记录

如果用listview1.items.add('值");这种添加方法为一次添加一行一列,无法达到一行多列的目的

访问所有记录代码:

if (listView1.Items.Count > 0)
            {
                foreach (ListViewItem lt in listView1.Items)
                {
                    MessageBox.Show(Convert.ToString(lt.SubItems[0].Text));//记问第行记录的第一个字段值
                }
            }



添加多行元素让listview始终显示最后一行

实现代码:

ListViewItem Item = new ListViewItem();
Item.SubItems.Clear();

.....相关其他代码

this.listView1.Items.Add(Item);
Item.EnsureVisible(); ;//关键的实现函数,切记它的位置!!!