根据内容拟合datagridview高度的问题

时间:2018-09-20 19:21:13

标签: vb.net datagridview

我有一个datagridview,其样式保持如下

dgvCreatinine.AutoGenerateColumns = False
        dgvCreatinine.AutoSize = False
        dgvCreatinine.AutoResizeRows()
        dgvCreatinine.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill
        dgvCreatinine.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders)
        dgvCreatinine.DataSource = dtTemp

它的出现如图所示

enter image description here

如您所见,gridview的大小没有按行调整。有人可以告诉我如何做到这一点吗?预先感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用此公式设置整个控件的高度

  

DataGridViewHeight = HeaderHeight + NumberOfRows * RowHeight

代码:

dgvCreatinine.Height =
    dgvCreatinine.ColumnHeadersHeight _
    + dgvCreatinine.Rows.OfType(Of DataGridViewRow).First().Height * dgvCreatinine.Rows.Count()

可行,但可以进行一些调整。例如,可能有一种更好的方法来获取行高。并且您可能还需要根据边框添加一个或两个像素。另外,如果您有基础数据源,则可以从中获取行数。

无论何时添加或删除行或更新数据绑定等,都应调用该代码。