ListView在WinForm中多用於表的構建,可以直觀的顯示表的信息,其格式如同SQL的表
這是他的位置,在公共控件中:
Listview的幾個重要屬性:Columms(集合)、Groups(集合)、Items(集合)、View(視圖)、以及Items中的SubItems(集合)
其中View共有5種樣式,常用選項為Details(詳細資料)
下圖划分了ListView中Details樣式下,各行各列的集合名。
Columns集合:需要在其中編輯列名,第一行(列名)
Items集合,第一列的第二行開始,這一列是單獨的一個集合
SubItems集合:從第二列第二行開始,每一行為一個集合。
注:SubItems在Items集合編輯器的屬性一欄中
了解了ListView的構造再來看看如何使用代碼往里添加數據。
1.創建一個WinForm,在表中畫出ListView,並修改ListView的屬性:
View修改為Details。
在屬性--行為--Columns集合中添加成員,並把Text分別修改為學號,姓名,性別,生日,班級
如圖:
新建一個類: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()); } }
最后運行結果: