20150226—C# winform中的ListView解析


ListView在WinForm中多用於表的構建,可以直觀的顯示表的信息,其格式如同SQL的表

這是他的位置,在公共控件中:

image

Listview的幾個重要屬性:Columms(集合)、Groups(集合)、Items(集合)、View(視圖)、以及Items中的SubItems(集合)

其中View共有5種樣式,常用選項為Details(詳細資料)

imageimage

下圖划分了ListView中Details樣式下,各行各列的集合名。

image

Columns集合:需要在其中編輯列名,第一行(列名)

image

Items集合,第一列的第二行開始,這一列是單獨的一個集合

image

SubItems集合:從第二列第二行開始,每一行為一個集合。

注:SubItems在Items集合編輯器的屬性一欄中

image

 

 

了解了ListView的構造再來看看如何使用代碼往里添加數據。

1.創建一個WinForm,在表中畫出ListView,並修改ListView的屬性:

View修改為Details。

在屬性--行為--Columns集合中添加成員,並把Text分別修改為學號,姓名,性別,生日,班級

如圖:

image

新建一個類:xuesheng

public class xuesheng
    {
        //定義變量並且封裝。
private string _Sno;

        public string Sno
        {
            get { return _Sno; }
            set { _Sno = value; }
        }
        private string _Sname;

        public string Sname
        {
            get { return _Sname; }
            set { _Sname = value; }
        }
        private string _Ssex;

        public string Ssex
        {
            get { return _Ssex; }
            set { _Ssex = value; }
        }
        private string _Sbirthday;

        public string Sbirthday
        {
            get { return _Sbirthday; }
            set { _Sbirthday = value; }
        }
        private string _Class;

        public string Class
        {
            get { return _Class; }
            set { _Class = value; }
        }

        public DataTable goujianbiao()//在C#中創建一個臨時的數據表
        {
            DataTable dt = new DataTable();//初始化數據表,需要引用using System.Data;
            //添加表的 列
              DataColumn sno = new DataColumn("sno");// 表的列 ("列名")
            dt.Columns.Add(sno);
            DataColumn sname =new DataColumn("sname");
            dt.Columns.Add(sname);
            DataColumn ssex=new DataColumn("ssex");
            dt.Columns.Add(ssex);
            DataColumn sbirthday=new DataColumn("sbirthday");
            dt.Columns.Add(sbirthday);
            DataColumn sclass=new DataColumn("sclass");
            dt.Columns.Add(sclass);

            //創建 表的 行
              DataRow row1=dt.NewRow();
            //在行中填入數據
              row1["sno"]="101";
            row1["sname"]="張三";
            row1["ssex"]="";
            row1["sbirthday"]="1987-05-15";
            row1["sclass"]="2012班";
            dt.Rows.Add(row1);//將行Row1填入到表dt的行的集合中
              return dt;//返回 數據表 對象
        }

在From_Load的函數中輸入以下代碼:

private void Form3_Load(object sender, EventArgs e)
        {
           xuesheng xx = new xuesheng();//如果不再同一個命名空間中不要忘記引用命名空間
            DataTable dt = xx.goujianbiao();//調用方法來構建出datatable表數據
            for (int i = 0; i < dt.Rows.Count; i++)//dt.Rows.Count 獲取數據表dt中行的個數
            {
                 DataRow dr = dt.Rows[i];//構建的數據表中一行的數據 ,行的集合,這里只有一行數據,
                   //根據列名找到這一行的元素並添加到Items集合中,第一列第二行,這里這個Items集合只有一個元素
                   listView1.Items.Add(dr["sno"].ToString());
                //根據列名將SubItems集合的元素分別添加進去,第二列第二行開始,集合中的元素按行排列
                   listView1.Items[i].SubItems.Add(dr["sname"].ToString());
                listView1.Items[i].SubItems.Add(dr["ssex"].ToString());
                listView1.Items[i].SubItems.Add(dr["sbirthday"].ToString());
                listView1.Items[i].SubItems.Add(dr["sclass"].ToString());
            }
        }

最后運行結果:

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM