我有Userform1,其尺寸适合全屏显示在2560 x 1440的显示器中.Userform1包含FrameA,其宽度也是2560,并且放大到10%。
FrameA包含子FrameB,其.Width为8000,其.Left为1000(在FrameA缩放的坐标中)。 FrameB在屏幕上完全可见。
我想将FrameB向右移动,使其右边缘位于显示器的右边缘。有人能告诉我这样做的算法吗?
答案 0 :(得分:0)
我不记得每一个表格看起来都像我想要的那么麻烦。
我最后搬了很多东西,或许不需要搬家。但是,我终于得到了我相信你寻求的效果,所以我没有尝试将代码移回原来的位置。
第一个关键变化似乎是:
Property StartUpPosition of UserForm1 = 0 - Manual`
没有这个,我无法将表格的高度设置为完整的可用高度。设置.Top没有效果。
第二个关键变化似乎是使用:
Application.DisplayFullScreen = True
我不记得之前需要这个命令,但是最大化窗口状态不会给出全屏高度。
我放弃了你的例程Sub maximizeWindows()
和Sub UserForm_initialize()
,因为我做了不同的事情,或者因为我移动了代码。我相信你可以将代码移回去,但我还没试过。
我添加了一个新控件cmdExit
,其中包含以下事件例程:
Private Sub cmdExit_Click()
Unload Me
End Sub
Sub runDemo()
已成为:
Sub runDemo()
Application.DisplayFullScreen = True
Load UserForm1
With UserForm1
.Top = 2
.Left = 0
.Width = Application.UsableWidth
.Height = Application.UsableHeight - 2
.Frame1.Move 0, 0, .InsideWidth, 300
.Frame2.Left = .Frame1.Left + .Frame1.InsideWidth - .Frame2.InsideWidth
.Show
End With
Application.DisplayFullScreen = False
End Sub
以上对我的影响是:
希望这适合你。
答案 1 :(得分:0)
我终于找到了怎么做。
回顾一下问题并简化一下: Frame2完全包含在缩放的Frame1内,需要向右移动,使其右侧与Frame1的右侧齐平。 Frame2的左侧应该移到哪里?
Sub move_Frame2_Hard_Right_Inside_Frame1()
Dim zoomPct!
zoomPct! = Frame1.Zoom / 100
Frame2.Left = Frame1.Width / zoomPct! - Frame2.Width
End Sub