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 控件的行列信息填充運行界面
相關文章
相關標籤/搜索