Foxtable(狐表)用户栏目专家坐堂 → 窗口控件间隙太宽


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

主题:窗口控件间隙太宽

帅哥哟,离线,有人找我吗?
nuoyan88
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2159 积分:14971 威望:0 精华:0 注册:2017/10/12 13:00:00
窗口控件间隙太宽  发帖心情 Post By:2019/2/13 10:07:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/13 10:36:00 [只看该作者]

 

对于label的控件,不改变width和height等属性即可。

 

具体做一个实例发丧了测试。

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
nuoyan88
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2159 积分:14971 威望:0 精华:0 注册:2017/10/12 13:00:00
  发帖心情 Post By:2019/2/15 10:55:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/15 11:22:00 [只看该作者]

代码改成

 

If e.Form.Width > 0 AndAlso e.Form.Height > 0 Then
    For Each c As Winform.Control In e.Form.Controls
        If Typeof c Is winform.label Then
            c.Left = c.Left * (e.Form.Width / vars("width"))
            c.Top = c.Top * (e.Form.Height / vars("height"))
            If e.Form.controls.contains(c.name & "1") Then
                Dim cc = e.Form.controls(c.name & "1")
                cc.Left = c.Left + c.width + 2
                'cc.Top = c.Top
                cc.Width = cc.Width * (e.Form.Width / vars("width"))
                cc.Height = cc.Height * (e.Form.Height / vars("height"))
            End If
        ElseIf e.Form.controls.contains(c.name.replace("1", "")) = False Then
            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"))
        End If
    Next
    'msgbox(e.Form.Height / vars("height"))
    vars("width") = e.Form.width
    vars("height") = e.Form.height
End If


 回到顶部
帅哥哟,离线,有人找我吗?
nuoyan88
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2159 积分:14971 威望:0 精华:0 注册:2017/10/12 13:00:00
  发帖心情 Post By:2019/2/15 13:17:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/15 14:42:00 [只看该作者]

If e.Form.Width > 0 AndAlso e.Form.Height > 0 Then
    For Each c As Winform.Control In e.Form.Controls
        If Typeof c Is winform.label Then
            c.Left = c.Left * (e.Form.Width / vars("width"))
            c.Top = c.Top * (e.Form.Height / vars("height"))
            If e.Form.controls.contains(c.name & "1") Then
                Dim cc = e.Form.controls(c.name & "1")
                cc.Left = c.Left + c.width + 2
                'cc.Top = c.Top
                cc.Width = cc.Width * (e.Form.Width / vars("width"))
                cc.Height = cc.Height * (e.Form.Height / vars("height"))
            End If
        ElseIf c.name.contains("1") = False OrElse e.Form.controls.contains(c.name.replace("1", "")) = False Then
            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"))
        End If
    Next
    'msgbox(e.Form.Height / vars("height"))
    vars("width") = e.Form.width
    vars("height") = e.Form.height
End If

 回到顶部
帅哥哟,离线,有人找我吗?
nuoyan88
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2159 积分:14971 威望:0 精华:0 注册:2017/10/12 13:00:00
  发帖心情 Post By:2019/2/15 16:00:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/15 16:07:00 [只看该作者]

 

你发的例子我测试没问题。请上传具体出错的实例。

 


 回到顶部