有没有办法增加页眉和第一行之间的距离?

时间:2019-07-28 11:09:18

标签: c# .net winforms datagridview

我使用DataGridView来显示一些数据。我更改了RowTemplate.DividerHeight属性,以使行之间具有良好的可见性。但是DataGridView的标头和第一行之间的距离是零。我可以增加与RowTemplate.DividerHeight值相同的距离吗?

编辑: 这是我的DataGridView

的定义
myGridView.GridColor = Color.Black;
myGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
myGridView.Location = new System.Drawing.Point(12, 57);
myGridView.Size = new System.Drawing.Size(641 - myGridView.Location.X - 10 - System.Windows.Forms.SystemInformation.VerticalScrollBarWidth, 490);
myGridView.Name = "myGridView";
myGridView.EnableHeadersVisualStyles = false;
myGridView.Font = new System.Drawing.Font("Tahoma", 14);
myGridView.ColumnCount = 4;

myGridView.Columns[0].HeaderText = "NR REC";
myGridView.Columns[0].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
myGridView.Columns[1].HeaderText = "RECORD NAME";
myGridView.Columns[2].HeaderText = "REG. NO";
myGridView.Columns[2].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
myGridView.Columns[3].HeaderText = "VIEWER";
myGridView.Columns[3].CellTemplate.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
myGridView.Columns[0].Width = 60;
myGridView.Columns[2].Width = 60;
myGridView.Columns[3].Width = 80;
myGridView.Columns[1].Width = myGridView.Width - myGridView.Columns[0].Width - myGridView.Columns[2].Width - myGridView.Columns[3].Width;
foreach (DataGridViewColumn col in myGridView.Columns) {
    col.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
    col.HeaderCell.Style.BackColor = Color.FromArgb(20, 20, 20);
    col.HeaderCell.Style.SelectionBackColor = Color.FromArgb(20, 20, 20);
    col.HeaderCell.Style.ForeColor = Color.LightGray;
    col.DividerWidth = 0;
    col.SortMode = DataGridViewColumnSortMode.NotSortable;
            }
myGridView.BackgroundColor = System.Drawing.Color.Black;
myGridView.CellBorderStyle = DataGridViewCellBorderStyle.SingleHorizontal;
myGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
myGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
myGridView.AllowUserToResizeRows = false;
myGridView.AllowUserToResizeColumns = false;

myGridView.DefaultCellStyle.SelectionBackColor = Color.FromArgb(20, 220, 20);
myGridView.DefaultCellStyle.SelectionForeColor = Color.Black;
myGridView.RowHeadersVisible = false;
myGridView.RowTemplate.Height = 50;
myGridView.RowTemplate.DividerHeight = 4;

myGridView.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None;
myGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
myGridView.ColumnHeadersHeight = 60;

myGridView.AllowUserToAddRows = false;
myGridView.EditMode = DataGridViewEditMode.EditProgrammatically;
myGridView.TabIndex = 3;

谢谢。

enter image description here

2 个答案:

答案 0 :(得分:1)

作为一种选择,您可以处理# Run the application shinyApp(ui = ui, server = server) 的{​​{1}}事件并自己绘制底部边框。例如:

CellPainting

答案 1 :(得分:0)

我认为您可以通过添加线路代码来更改距离:

dgv.Columns["col1"].HeaderCell.Style.Padding = new Padding(0, 5, 0, 0)
dgv.Columns["col2"].HeaderCell.Style.Padding = new Padding(0, 5, 0, 0)

或者我建议您阅读以下链接:DATAGRIDVIEW PADDING