首页 > 解决方案 > 如何在 DataGridView 中获取实际行的高度?

问题描述

我正在使用 TabControl 在每个选项卡中插入 DataGridView。DGV 的第一列是 ButtonCollumn,我试图通过使用行的高度来更改每个 DGV 中第一列中所有单元格的填充(以便所有按钮可以具有相同的大小),但高度是与显示的不同。它适用于第一个选项卡,但不适用于其他选项卡。

我试图在代码中的不同位置更改填充,以防高度可能尚未设置,但没有任何改变。

我已将网格的 RowTemplate 设置为最小值。当我查看除第一个选项卡之外的任何其他选项卡的每一行的高度时,我看到的最小值也是相同的最小值。所以最后,填充错误并且按钮过大。

我认为这可能是因为当时尚未绘制 DGV,因此尚未设置大小,但第一个选项卡让我相信并非如此。

这是我的填充代码,如果有帮助的话:

For each tp As TabPage In  Me.TabControl1.TabPages

    Dim dgv As DataGridView = tp.Controls(0)

        For each row as DataGridViewRow In dgv.Rows
            dim h As integer = row.Height
            row.Cells(0).Style.Padding = New Padding(12,
                                                     Math.Ceiling((h -24)/2),
                                                     12,
                                                     Math.Floor((h -24)/2))
            row.Cells(0).Value = h     ' For debbuging purpose
    Next
Next    

编辑:

当我创建 DGV 时,AutoSizeRowsMode设置为AllCells, WrapModeto True。(如果此信息可以提供帮助)

标签: vb.netdatagridviewrowheight

解决方案


推荐阅读