首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据文本长度计算datagridview行高

问如何根据文本长度计算datagridview行高
EN

Stack Overflow用户
提问于 2019-07-09 06:34:31
回答 2查看 165关注 0票数 0

在datagridview中,有一列启用了wordwrap。将AutoSizeRowsMode设置为None以外的任何值都会导致网格需要很长时间才能填充。无论是10行还是100行,是绑定的还是未绑定的。我的网格是未绑定的。我想遍历行,并根据换行列中文本的长度计算每行的行高。如何计算自动换行生成的行数?或者我可以使用文本的长度,然后根据其他变量计算行高?

其他帖子建议使用DataGridViewAutoSizeRowsMode.DisplayedCells。这没什么用。

EN

回答 2

Stack Overflow用户

发布于 2019-07-09 23:34:37

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2019-09-05 20:17:08

最简单的方法是使用GetPreferredHeight

代码语言:javascript
复制
For iRow As Int32 = 0 To dgvItems.Rows.Count - 1

    dgvItems.Rows(iRow).Height = 
dgvItems.Rows(iRow).GetPreferredHeight(iRow, DataGridViewAutoSizeRowMode.AllCells, True)

Next
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56943288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档