Foxtable(狐表)用户栏目专家坐堂 → 动态锚定控件


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

主题:动态锚定控件

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


加好友 发短信
等级:童狐 帖子:298 积分:2192 威望:0 精华:0 注册:2023/1/11 7:15:00
动态锚定控件  发帖心情 Post By:2024/1/27 7:55:00 [只看该作者]

老师, 我想实现一个功能, 在一个窗口上方设置一个选项按钮, 下面分别放置2个表格,分别为"MS"和"PO ChangeNotice", 如为真,则下方 PO changeNotice 表在窗口显示, 此时需要确认其高度(因为需要匹配不同的显示器),并将"MS"表的高度调整为 窗口总高- 表控件"PO ChangeNotice" 的高度,  如果选项按钮为False, 则"MS"表控件高度调整为 表总高- "MS"控件的.Top 值 再减2, 2为留出的下边缘距离.

我编制了如下程序, 在预览时下面的th 值正常, 但当应用后发现 th值就为空了, 所以我直接将其改为了831, 我不清楚为什么这个时候不能动态调用 e.form.baseForm.height, 这个动态的控件锚定又如何写? 谢谢!

Dim ShowPOChange As Boolean = e.Sender.Checked
Dim MS As WinForm.Table = e.Form.Controls("MasterSales")
'Dim th As Integer = e.Form.BaseForm.Height
Dim th As Integer =831 ' Forms("MasterSales").BaseForm.Height
'MessageBox.Show(th)
If ShowPOChange = True Then '显示PO change Notice, MS 高度调整,并设定锚定为 上,左右    
    MS.Height = 360
    MS.Anchor = System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right

    With e.Form.Controls("ChangeNotice")
        .Visible = True '显示变更通知, 锚定不变(上下左右)
        .Top = MS.Top + MS.Height + 2
        .Height = th - e.Form.Controls("ChangeNotice").Top - 1
    End With
Else '不显示变更通知
    e.Form.Controls("ChangeNotice").Visible = False
    e.Form.Controls("MasterSales").Height = th - MS.Top - 1 ' 360 + 183
    MS.Anchor = System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right Or System.Windows.Forms.AnchorStyles.Bottom '上下左右
End If

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


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/27 8:55:00 [只看该作者]

什么类型的窗口?代码放在什么事件?

 回到顶部
帅哥,在线噢!
creastzh
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:298 积分:2192 威望:0 精华:0 注册:2023/1/11 7:15:00
  发帖心情 Post By:2024/2/17 9:43:00 [只看该作者]

窗口为主窗口, 我在主窗口设置了一个按钮,点击该按钮显示下方的表格,再次点击则关闭下方的表格

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


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/2/17 20:47:00 [只看该作者]

完全没有必要什么动态设置锚定。把2个表控件设置为大小一致,重叠到一起,直接在窗口设计设置好锚定。然后按钮只需要设置控件的隐藏和显示即可

 回到顶部