winform,DataGridView繫結資料後更改列屬性、動態建立(用一個控制元件顯示多表適用)
阿新 • • 發佈:2019-02-18
DataGridView 特效 = new DataGridView(); string[] 列名 = { "直線", "炸彈", "骷髏", "禮盒" }, 說明 = {"消除一列所有元素","消除4×4範圍元素","消除所有指定元素","隨機贈送三種特效一個"}; int 列數 = 0; foreach (string 元素 in 列名) { DataGridViewImageColumn 新圖列 = new DataGridViewImageColumn(); 新圖列.HeaderText = 元素; 特效.Columns.Add(新圖列); } 特效.Rows.Add(); foreach (string 元素 in 說明) { 特效.Rows[0].Cells[列數].Value = new Bitmap(24, 24); 特效.Rows[0].Cells[列數++].ToolTipText = 元素; } 特效.Rows.Add(); 列數 = 0; foreach (string 元素 in 列名) { DataGridViewTextBoxCell 文字列 = new DataGridViewTextBoxCell(); 特效.Rows[1].Cells[列數] = 文字列; 特效.Rows[1].Cells[列數++].Value = "0"; }
private void 改變列屬性() { for (int 行 = 0; 行 < 編輯控表.RowCount - 1; 行++) { for (int 列 = 0; 列 < 編輯控表.ColumnCount; 列++) { DataGridViewLinkCell 超連結列 = new DataGridViewLinkCell(); if (編輯控表.Rows[行].Cells[列].Value.ToString().IndexOf("http://") == 0) 編輯控表.Rows[行].Cells[列] = 超連結列; } } }
private void 建立資料顯示(string[] 表列名) { 編輯控表.Columns.Clear(); foreach (string 元素 in 表名) { DataGridViewTextBoxColumn 列 = new DataGridViewTextBoxColumn(); 列.HeaderText = 元素; 列.DataPropertyName = 元素; 編輯控表.Columns.Add(列); } }
string[] 動態顯示列 = null;
動態顯示列 = new string[] { "歸屬", "姓名", "生日", "性別", "關係" }; 建立資料顯示(建立);
動態顯示列 = new string[] { "總類", "別類", "子類", "標題", "內容" }; 建立資料顯示(建立);
動態顯示列 = new string[] { "智力值", "情緒值", "體力值", "均值", "相隔天數", "提示內容", "心情日記", "日期" }; 建立資料顯示(建立);
WinForm DataGridView 行焦點不改變的情況下提交資料:
if (DataGridView.IsCurrentCellDirty) DataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
bindingSource.EndEdit();