找回密码
 立即注册

QQ登录

只需一步,快速开始

ccc_ooo

高级会员

29

主题

61

帖子

1108

积分

高级会员

积分
1108

活字格认证

最新发帖
ccc_ooo
高级会员   /  发表于:2011-4-25 15:12  /   查看:6352  /  回复:1
使用如下代码实现改变窗体大小功能,调试运行后,改变vb窗体大小,只是spread窗口大小和字体大小改变
,行宽、列宽没有改变。
问:自动改变窗体大小spread5如何设置?

=============================
Public Class Form1

    Dim x As Single = 0
    Dim y As Single = 0
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '得到原始窗体大小
        x = Me.Width
        y = Me.Height
        setTag(Me)
    End Sub

    Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
        '得到现在窗体的大小,然后根据原始大小计算缩放比例
        Dim newx As Single = Me.Width / x
        Dim newy As Single = Me.Height / y
        setControls(newx, newy, Me)
    End Sub
    '递归取控件的原始大小和位置,用tag来纪录
    Private Sub setTag(ByVal obj As Object)
        For Each con As Control In obj.Controls
            con.Tag = con.Width & ":" & con.Height & ":" & con.Left & ":" & con.Top & ":" & con.Font.Size
            '如果是容器控件,则递归继续纪录
            If con.Controls.Count > 0 Then
                setTag(con)
            End If
        Next
    End Sub
    '递归重新设定控件的大小和位置
    Private Sub setControls(ByVal newx As Single, ByVal newy As Single, ByVal obj As Object)
        For Each con As Control In obj.Controls
            con.AutoSize = False
            Dim mytag() As String = con.Tag.ToString.Split(":")
            con.Width = mytag(0) * newx
            con.Height = mytag(1) * newy
            con.Left = mytag(2) * newx
            con.Top = mytag(3) * newy
            '计算字体缩放比例,缩放字体
            Dim currentSize As Single = newy * mytag(4)
            con.Font = New Font(con.Font.Name, currentSize, _
                con.Font.Style, con.Font.Unit)
            '如果是容器控件,则递归继续缩放
            If con.Controls.Count > 0 Then
                setControls(newx, newy, con)
            End If
        Next
    End Sub
End Class

1 个回复

倒序浏览
gw0506
超级版主   /  发表于:2011-4-25 15:46:00
沙发
你的需求不是要调整窗口大小,是要缩放Spread。

你可以调整ZoomFactor属性,例如:
  1. this.fpSpread1.ActiveSheet.ZoomFactor = 3;
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部