Как рассчитать высоту строки сетки данных на основе длины текста - PullRequest
0 голосов
/ 09 июля 2019

Имейте представление данных, у одного столбца есть включенная перенос по словам. Установка AutoSizeRowsMode в любое значение, отличное от None, приводит к тому, что для заполнения сетки требуется много времени. Не имеет значения, 10 строк или 100, привязаны или нет. Моя сетка не связана. Я хотел бы зациклить строку и на основе длины текста в обернутом столбце рассчитать высоту строки для каждой строки. Как рассчитать количество строк, созданных переносом слов? Или я могу использовать длину текста и на основе других переменных вычислить высоту строки?

В другом посте предлагается использовать DataGridViewAutoSizeRowsMode.DisplayedCells. Это не помогает.

1 Ответ

0 голосов
/ 09 июля 2019
Dim strTemp As String
Dim szTemp As SizeF
Dim intLineHeight As Int32
Dim gphicsTemp As Graphics
gphicsTemp = Graphics.FromHwnd(Me.Handle)
Dim baselineSize As SizeF = gphicsTemp.MeasureString("SAMPLE ROW", dgvDeals.Font)
Dim intPadding As Int32 = 6
For Each dgvrTemp In dgvDeals.Rows
If dgvrTemp.Cells("CD_DESCRIPTION").Value.ToString.Trim <> "" Then
    strTemp = dgvrTemp.Cells("CD_DESCRIPTION").Value.ToString
    szTemp = gphicsTemp.MeasureString(strTemp, dgvDeals.Font, dgvrTemp.Cells("CD_DESCRIPTION").Size.Width)
    intLineHeight = Math.Round((szTemp.Height / baselineSize.Height))
    dgvrTemp.Height = (Math.Round(baselineSize.Height) * intLineHeight) + intPadding
End If
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...