2-9 ListView 控件 2

简介:

2. 案例学习:编程实现ListView 控件的行列信息填充

1 )从工具箱之中拖放三个 Button 控件和一个 ListView  控件,同时设置 ListView  控件的属性 View Details 。如图 2-32 所示布局。
2-32  编程实现ListView 控件的行列信息填充界面
     2 )具体功能的实现见下面的编码部分:
using  System;
using  System.Collections.Generic;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Text;
using  System.Windows.Forms;
 
namespace  WindowsApplication2
{
    public partial class Form001 : Form
    {
        public Form001()
        {
            InitializeComponent();
            listView1.View = View.Details;//设置listView对象的View属性值为Details
        }
        ///   <summary>
        /// 在初始化事件之中配置当前listView1控件的基本属性
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form001_Load(object sender, EventArgs e)
        {
            ColumnHeader Header1 = new ColumnHeader();//确定一个表头对象
            //设置表头的名称、对齐方式和宽度属性
            Header1.Text = "姓名";
            Header1.TextAlign = HorizontalAlignment.Center;
            Header1.Width = 100;
            //将表头对象添加入listView控件
            listView1.Columns.Add(Header1);
        }
        /// <summary>
        /// 添加属性列编码部分
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            //此处学习如何添加表头列
            listView1.Columns.Add("年龄", 100, HorizontalAlignment.Center);
            listView1.Columns.Add("班级", 40, HorizontalAlignment.Center);
            listView1.Columns.Add("性别", 40, HorizontalAlignment.Center);
            listView1.Columns.Add("职业", 40, HorizontalAlignment.Center);
            button2.Enabled = false;
        }
         /// <summary>
        /// 移除行信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            //通过Remove移除listView行信息
            listView1.Columns.Remove(listView1.Columns[0]);
        }
        ///   <summary>
        /// 添加数据行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            listView1.BeginUpdate();
          //如果希望使用 ListView.ListViewItemCollection 类的 Add 方法以每次一个的方式添加项,
          //则可以使用 BeginUpdate 方法防止控件在每次添加项时重新绘制 ListView。在完成将项添加//到控件的任务后,请调用 EndUpdate 方法以使 ListView 能够重新绘制。这种添加项的方法可以防止将//大量项添加到控件时发生闪烁的 ListView 绘制。
            listView1.Items.Add("row1""张三", 0);
          //增加第一个Item,在View.Details模式下,有点像第一列中一个值。或者是二维表的索引值,//或者是数据库的主码位置。
            listView1.Items["row1"].SubItems.Add("21");
          //增加第一个Item的第一个子项SubItem,在View.Details模式下,有点像第一行中的第二个值
            listView1.Items["row1"].SubItems.Add("98001");
            listView1.Items["row1"].SubItems.Add("男");
            listView1.Items["row1"].SubItems.Add("学生");
            //以上内容,以此类推。
            listView1.Items.Add("row2""李四", 1);
            listView1.Items["row2"].SubItems.Add("22");
            listView1.Items["row2"].SubItems.Add("98002");
            listView1.Items["row2"].SubItems.Add("女");
            listView1.Items["row2"].SubItems.Add("教师");
 
            listView1.Items.Add("row3""王五", 2);
            listView1.Items["row3"].SubItems.Add("23");
            listView1.Items["row3"].SubItems.Add("98003");
            listView1.Items["row3"].SubItems.Add("男");
            listView1.Items["row3"].SubItems.Add("干部");
 
            listView1.Items.Add("row4""赵六", 3);
            listView1.Items["row4"].SubItems.Add("24");
            listView1.Items["row4"].SubItems.Add("98004");
            listView1.Items["row4"].SubItems.Add("女");
            listView1.Items["row4"].SubItems.Add("军人");
            //与listView1.BeginUpdate()成对出现,结束更新
            listView1.EndUpdate();
            //下面开始学习如何添加行颜色变化
            for (int i = 0; i < listView1.Items.Count; i++)
            {
                if (i % 2 == 0)
                {
                    listView1.Items[i].BackColor = Color.Gray;
                }
            }
            //下面开始熟悉属性
            this.listView1.GridLines = true//显示表格线
            this.listView1.View = View.Details;//显示表格细节
            this.listView1.LabelEdit = true//是否可编辑,ListView只可编辑第一列。
            this.listView1.Scrollable = true;//有滚动条
            this.listView1.HeaderStyle = ColumnHeaderStyle.Clickable;//对表头进行设置
       }
        /// <summary>
        /// 清空全部的数据项
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button4_Click(object sender, EventArgs e)
        {
            this.listView1.Clear();
        }
        /// <summary>
        /// 清除列表内容,不清除表头信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button5_Click(object sender, EventArgs e)
        {
            listView1.Items.Clear();
        }
        /// <summary>
        /// 当鼠标点击ListView某行时候弹出信息提示
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            foreach (ListViewItem lst in listView1.SelectedItems)
            {
                //在这里对lst进行处理,lst代表每一个被选中的ListViewItem  
                MessageBox.Show(lst.Text);//这里示例显示每一个被选中的项的第一列的文本  
            }
        }
    }
}
     3 )运行后效果见图 2-33
2-33  编程实现ListView 控件的行列信息填充运行界面




本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/208661,如需转载请自行联系原作者

目录
相关文章
|
1月前
|
C#
45.c#:listview控件
45.c#:listview控件
10 1
|
10月前
|
Android开发
ScrollView 与 ListView 以及 GridView 滑动冲突完美解决
ScrollView 与 ListView 以及 GridView 滑动冲突完美解决
|
Java API Android开发
ListView简单实用
自定义BaseAdapter,绑定ListView的最简单例子
121 0
C#-ListView的使用
ListView顾名思义用来做列表数据展示,也是我们在开发中经常使用的控件之一,接下来将展示下它的一些使用场景,以满足不同的需求。
119 0
如何在 C#中的listView 控件中显示图片?
如何在 C#中的listView 控件中显示图片?
954 0
如何在 C#中的listView 控件中显示图片?