双屏幕上的VBA分散用户表单(笔记本电脑17英寸和屏幕27英寸)

时间:2020-03-26 14:36:49

标签: excel vba userform

在尺寸不同的双屏上显示用户表单时,我遇到了一个奇怪的问题(即使它们都是1920 x 1080)

所以我将17英寸的笔记本电脑挂在了三星的27英寸显示器上。

我在初始化时使用了众所周知的代码

Private Sub UserForm_Initialize()

  Me.StartUpPosition = 0
  Me.Left = Application.Left + (0.5 * Application.Width) - (0.5 * Me.Width)
  Me.Top = Application.Top + (0.5 * Application.Height) - (0.5 * Me.Height)

End Sub

如果我将2台显示器挂在笔记本电脑上,然后关闭笔记本电脑,这应该可以正常工作。

但是,如果我的笔记本电脑是打开的,并且我加载了用户窗体,则所有控件似乎都不在位。 唯一的问题是,只有当应用程序在监视器上处于活动状态时,才会发生这种情况;如果在笔记本电脑上打开了该应用程序,则一切都可以正确显示

设计模式图片: Design mode image

在加载用户窗体时,它看起来像这样: Show image

当我左右拖动用户表单(仅1个像素)时,用户表单会正确显示: Image after dragging

反正有解决此问题的方法吗? 我尝试了几种方法,例如在初始化代码时重新设置每个控件的宽度和高度,等等,都没有成功。

在Google上浏览了大约3个小时,找不到任何帮助我的方法。

也许您的Pro拥有神奇的解决方案?

预先感谢, 亲切的问候!

1 个答案:

答案 0 :(得分:0)

FaneDuru的建议奏效了, 但是您无需将代码放入initialize事件中,而是将代码放入Activate事件中

相关问题