前言
有一位朋友最近接了一個 Case,這 Case 後來變成 WinForm 的系統,他對於 winform 不熟悉,跑來找我一起討論,我發覺我也很久沒碰了XD,覺得順便整理一下好了。
正文
我準備把DataGridView的操作當成一個系列來介紹;我會把範例程式丟到Github上,然後此系列應該都是同一個Repo,請大家觀看的時候配合 commit comment 。
範例資料
此處採用DataTable(因為朋友那邊是用DataTable,所以就不使用 Object 了),關於資料處理的部分就不贅述了
要載入的資料 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16private DataTable sampleData() {
using (DataTable table = new DataTable()) {
// Add columns.
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Gender", typeof(string));
table.Columns.Add("Married ", typeof(int));
table.Columns.Add("Birthday", typeof(DateTime));
// Add rows.
table.Rows.Add("Allen", "Male", 0, DateTime.Now);
table.Rows.Add("Kevin", "Male", 1, DateTime.Now);
table.Rows.Add("Dean", "Male", 0, DateTime.Today);
table.Rows.Add("Jenny", "Female", 1, DateTime.Today);
return table;
}
}畫面設計
視窗畫面的部分,如下圖設計,有些功能這次還不會描述到,但是可以先設計。
欄位屬性設定
比較需要注意的是DataGridView的Columns設定(此處不自行撰寫程式碼,而依靠編輯器的 code generator);需要在DataGridView的屬性視窗,點擊Columns這個屬性設定,之後就可以設定DataGridView顯示的欄位,另外需要設定DataPropertyName這屬性,這屬性跟等下需要綁定的DataTable欄位名稱相同,這樣才可以對應綁定。
資料綁定
這部分的程式碼很簡易,直接將DataGridView的DataSource屬性指定為範例資料就好
1
2
3
4public Form1() {
InitializeComponent();
gvSample.DataSource = sampleData();
}呈現樣式會這樣
附上 sample 的 github參考資料
- MSDN:DataGridView 控制項
- MSDN:DataGridView 類別
- MSDN:DataPropertyName