Как получить реальную высоту строки в DataGridView? - PullRequest
0 голосов
/ 15 февраля 2019

Я использую 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, WrapMode на True.(Если эта информация может помочь)

...