#region 表格設置 /// <summary> /// 調整表格 /// </summary> /// <param name="dataGrid"></param> private void AdjustDataGridView(DataGridView dataGrid) { //設置背景顏色 dataGrid.BackgroundColor = Color.White; //去邊框 dataGrid.BorderStyle = BorderStyle.None; dataGrid.CellBorderStyle = DataGridViewCellBorderStyle.None; dataGrid.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None; //禁止表頭點擊排序 for (int i = 0; i < dataGrid.Columns.Count; i++) { dataGrid.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; } //調整表頭 dataGrid.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing; dataGrid.ColumnHeadersHeight = 48; dataGrid.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; //調整行高 dataGrid.RowTemplate.Height = 48; dataGrid.EnableHeadersVisualStyles = false; //表頭樣式設置 dataGrid.ColumnHeadersDefaultCellStyle = new DataGridViewCellStyle() { BackColor = System.Drawing.ColorTranslator.FromHtml("#FFFAFAFA"), ForeColor = ColorTranslator.FromHtml("#FF999999"), Padding = new Padding() { Left = 10 }, Font = new Font("微軟雅黑", 10.5F, FontStyle.Regular, GraphicsUnit.Point, 134) }; //單元格樣式 dataGrid.DefaultCellStyle = new DataGridViewCellStyle() { ForeColor = ColorTranslator.FromHtml("#FF333333"), Padding = new Padding() { Left = 10 }, Font = new Font("微軟雅黑", 10.5F, FontStyle.Regular, GraphicsUnit.Point, 134) }; //列填充整個表格 dataGrid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; //禁止用戶添加行 dataGrid.AllowUserToAddRows = false; //禁止顯示行頭 dataGrid.RowHeadersVisible = false; //點擊選擇整行 dataGrid.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //禁止調整列寬 dataGrid.AllowUserToResizeColumns = false; //禁止調整行高 dataGrid.AllowUserToResizeRows = false; //禁止刪除行 dataGrid.AllowUserToDeleteRows = false; //禁止手動定位 dataGrid.AllowUserToOrderColumns = false; //禁用編輯 dataGrid.ReadOnly = true; //去掉多余列 dataGrid.AutoGenerateColumns = false; } //生成普通表頭 private void CreateDataGridTextBoxColumnHeader(DataGridView dg, string[] headers) { foreach (var h in headers) { DataGridViewTextBoxColumn dc = new DataGridViewTextBoxColumn() { Name = h }; dg.Columns.Add(dc); } } //生成操作列(可點擊的列) private void CreateDataGridLinkButtonHeader(DataGridView dg, string[] headers) { for (int i = 0; i < headers.Length; i++) { DataGridViewLinkColumn dc = new DataGridViewLinkColumn() { Name = headers[i], LinkBehavior = LinkBehavior.NeverUnderline }; dg.Columns.Add(dc); } } /// <summary> /// 表格數據綁定 /// </summary> /// <param name="source"></param> private void DataGridBinds(DataGridView dg, object source, string[] headerText, string[] properts) { //if (source is DataTable) //{ // DataTable dt = source as DataTable; // if (dt.Rows.Count > 0) // { // } //} //else //{ //} CreateDataGridTextBoxColumnHeader(dg, headerText); CreateDataGridLinkButtonHeader(dg, new string[] { "操作" }); AdjustDataGridView(dg); for (int i = 0; i < dg.Columns.Count; i++) { try { dg.Columns[i].DataPropertyName = properts[i]; } catch (Exception ex) { MessageBox.Show(ex.Message); break; } } dg.DataSource = source; } #endregion
選中表格行不改變背景色
private void dgRegistDev_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { e.CellStyle.SelectionForeColor = e.CellStyle.ForeColor; e.CellStyle.SelectionBackColor = e.CellStyle.BackColor; }
