可以试试这个思路,没试过,知道原来屏幕宽度,和原来的列宽,比如按照1440计算的,新的屏幕宽度为1920,采用同比例计算新的屏幕的列宽,需要去完善。参考代码:
'SizeChanged事件
If vars("width") > 0 AndAlso vars("height") > 0 AndAlso basemainform.windowstate <> 1 Then
Dim cvs1 As String = Tables("表A").GetColVisibleWidth()
Dim s As String = Nothing
Dim Multi As String = cvs1
Dim Values() As String
Values = Multi.split("|")
For Index As Integer = 0 To Values.Length - 1
If Char.IsDigit(Values(Index)) Then '判断是数字
Values(Index) = Values(Index) * 2 '先计算比例,在乘以相同比例(比例需要根据实际分辨率来计算),另外需要取整
End If
' Output.Show(Values(Index))
If s <> Nothing Then s = s & "|"
s = s & Values(Index)
Next
Tables("表A").SetColVisibleWidth(s)
End If
测试了一下,是可以的,但是一定要根据不同的分辨率计算好比例,好像列宽不能设置为小数,所有取整后,最后一列建议设置为铺满整个窗口。行高也可以这样处理,但是字体不能随分辨率缩放是个难点
[此贴子已经被作者于2023/11/14 16:33:55编辑过]