Foxtable(狐表)用户栏目专家坐堂 → 求助 窗口Font.Size随窗口同时放缩


  共有2084人关注过本帖树形打印复制链接

主题:求助 窗口Font.Size随窗口同时放缩

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106414 积分:541217 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/6/30 22:46:00 [显示全部帖子]

不建议使用这个用法改字体,麻烦而不切实际

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106414 积分:541217 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/7/1 10:47:00 [显示全部帖子]

做不了的。字体是一维的,只能整体设置大小,不能只设置高度或者宽度。但是窗口是可以设置其中一种的,所以没有办法协调。非常容易失真

If e.Form.Width > 0 AndAlso e.Form.Height  > 0 Then
    e.Form.StopRedraw
    For Each c As Winform.Control In e.Form.Controls
        c.Left = c.Left * (e.Form.Width / vars("width"))
        c.Top = c.Top * (e.Form.Height / vars("height"))
        c.Width = c.Width * (e.Form.Width / vars("width"))
        c.Height = c.Height * (e.Form.Height / vars("height"))
        Dim s As Double = val(c.Font.Size)
        Dim fnt As Font = new Font(c.Font.Name,s * e.Form.Width / vars("width"))
        c.Font = fnt
    Next
    'msgbox(e.Form.Height / vars("height"))
    vars("width") = e.Form.width
    vars("height") = e.Form.height
    e.Form.ResumeRedraw
End If

 回到顶部