Foxtable(狐表)用户栏目专家坐堂 → 锚定和停靠


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

主题:锚定和停靠

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


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

加入如下判断,具体的数值,你可以改成50、100、500都可以,意思宽度高度大于某一值得时候,才自适应。

 

If vars("width") > 0 andalso vars("height") > 0 Then

 

 


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


加好友 发短信
等级:狐精 帖子:3082 积分:20596 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/9/11 15:15:00 [只看该作者]

这个判断加了的,还是这种情况

If vars("width") > 500 AndAlso vars("height") > 500 Then
    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"))
    Next
    'msgbox(e.Form.Height / vars("height"))
    vars("width") = e.Form.width
    vars("height") = e.Form.height
Else
End If


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


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

以下是引用cd_tdh在2018/9/11 15:15:00的发言:

这个判断加了的,还是这种情况

If vars("width") > 500 AndAlso vars("height") > 500 Then
    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"))
    Next
    'msgbox(e.Form.Height / vars("height"))
    vars("width") = e.Form.width
    vars("height") = e.Form.height
Else
End If

 

做个例子发上来测试一下。


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


加好友 发短信
等级:狐精 帖子:3082 积分:20596 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/9/11 15:49:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目6.foxdb


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


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

改代码

 

If vars("width") > 500 AndAlso vars("height") > 500 AndAlso basemainform.windowstate <> 1 Then
msgbox(vars("width"))
    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"))
    Next
End If
vars("width") = e.Form.width
vars("height") = e.Form.height


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


加好友 发短信
等级:狐精 帖子:3082 积分:20596 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2018/9/11 16:14:00 [只看该作者]

老师,找到另外方式也能解决,在afterload里面也判断一下

If vars("width") > 0 andalso vars("height") > 0 Then

[此贴子已经被作者于2018/9/11 16:14:23编辑过]

 回到顶部
总数 16 上一页 1 2