【问题标题】:Changing the row height of a DataGridView更改 DataGridView 的行高
【发布时间】:2011-03-23 03:56:51
【问题描述】:

如何更改 DataGridView 的行高?

我设置了属性的值,但高度没有改变。在设置此属性之前,必须检查任何其他属性。

【问题讨论】:

    标签: c# c#-2.0


    【解决方案1】:

    你需要设置RowTemplate的Height属性:

    var dgv = new DataGridView();
    dgv.RowTemplate.Height = 30;
    

    【讨论】:

    • 我设置了属性,但高度没有改变,在做这个之前要检查任何其他属性
    • 我不确定,您可能需要检查是否在其他地方设置了 RowTemplate.Height 属性,因为这对我来说可以正常工作 =)
    • 感谢@Rob,您的指南为我工作。但是我很惊讶地看到这个链接和你回答的问题之间的冲突。你能告诉我原因吗? stackoverflow.com/questions/8705312/….
    • 对我来说,第一个新行失败了。但随后开始工作,因此第 2 行和第 3 行具有新的高度。有任何想法吗?我在设计器中设置高度,而不是在代码中。
    • 请记住,此属性仅适用于单元格高度,不适用于 ColumnHeader 高度。
    【解决方案2】:

    可以通过代码设置行高

    dataGridView.RowTemplate.Height = 35;
    

    或通过属性面板

    【讨论】:

      【解决方案3】:

      试试

      datagridview.RowTemplate.MinimumHeight = 25;//25 is height.
      

      我做到了,效果很好!

      【讨论】:

        【解决方案4】:

        你可以在 RowAdded Event 上做到这一点:

        _data_grid_view.RowsAdded += new System.Windows.Forms.DataGridViewRowsAddedEventHandler(this._data_grid_view_RowsAdded);
        
        private void _data_grid_view_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
                {
                    _data_grid_view.Rows[e.RowIndex].Height = 42;
                }
        

        当一行添加到 dataGridView 时,它只需将其高度更改为 42。

        【讨论】:

          【解决方案5】:

          您还需要将 resizable 属性更改为 true

              dataGridView1.RowTemplate.Resizable = DataGridViewTriState.True;
              dataGridView1.RowTemplate.Height = 50;
          

          【讨论】:

            【解决方案6】:

            你需要:

            dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
            

            然后:

            dataGridView1.ColumnHeadersHeight = 60;
            

            【讨论】:

              【解决方案7】:

              您可以在 .cs [Design].

              然后单击数据网格视图Properties

              寻找RowTemplate并展开它,

              然后在Height 中键入值。

              【讨论】:

                【解决方案8】:

                您需要做的是设置行的 MinimumHeight 属性。不仅是 Height 属性。那是关键。将下面的代码放在datagridview的CellPainting事件中

                private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
                {
                   foreach(DataGridViewRow x in dataGridView1.Rows)
                   {
                     x.MinimumHeight = 50;
                   }
                }
                

                【讨论】:

                  【解决方案9】:
                  dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
                  for (int i = 0; i < dataGridView1.Columns.Count; i++)
                  {
                      dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
                      dataGridView1.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet;
                  }
                  

                  【讨论】:

                  • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。考虑阅读How to Answeredit 你的答案以改进它。
                  【解决方案10】:

                  确保将 AutoSizeRowsMode 设置为 None 否则行高将无关紧要,因为...它会自动调整行大小。

                  这应该是一件容易的事,但我为此奋斗了几个小时才弄明白。

                  迟到总比不回复好=)

                  【讨论】:

                    猜你喜欢
                    • 2014-02-13
                    • 2011-10-31
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2012-08-25
                    • 1970-01-01
                    • 2011-12-23
                    相关资源
                    最近更新 更多