我用的这个代码
If e.Col.Name =
"备注"
Then
e.Table.AutoSizeRow(e.Row.Index)
End if
效果应该不是这样吧?输多输少都会变成这么高,是因为表格里备注内容最多的就有这么高,不是根据本行的内容来定的?自动后的行高不理想诶。。
此主题相关图片如下:qq截图20170803153649.png
[此贴子已经被作者于2017/8/3 15:40:04编辑过]
你想根据哪一列的内容调整行高?或者你改成,afterEdit
Dim t As Table = e.Table
Dim cname As String = e.Col.name
Dim lc As Integer = t.cols(cname).index+1
Dim br As Integer = e.Row.index+t.HeaderRows
t.grid.AutoSizeRows(0, lc, br, lc, 0, 0)
如果直接用甜老师这个代码的使用效果是:在同一行中,改动任何一列的数据,行高就会根据该列的行高自动调整。如果改为:
If e.Col.Name="列名" Then
Dim t As Table = e.Table
Dim cname As String = e.Col.name
Dim lc As Integer = t.cols(cname).index+1
Dim br As Integer = e.Row.index+t.HeaderRows
t.grid.AutoSizeRows(0, lc, br, lc, 0, 0)
End If
则改动该列的数据,该行会自动调整行高,改动其他列行高无变化。
实在是好用。
根据甜老师代码修改,设置指定行高
Dim t As Table = Tables("表A")
Dim lc As Integer = t.cols("备注").index+1
Dim br As Integer = CurrentTable.Current.index+t.HeaderRows
t.grid.AutoSizeRows(0, lc, br, lc, 0, 0)