适当刷新帧画面
Properly refresh frame picture
我在用户表单的帮助下创建了一个仪表板。我用框架加载了背景图片。
我想创建一个隐藏右侧菜单的按钮,以便可以看到整个背景图片。但是,当我隐藏菜单时(它们是标签和1个多形式),标签后面留下一个白色方块,所以看不到图片。
我已经尝试了多种方法来解决这个问题,但是 none 目前为止它们都有效。我用它来隐藏菜单:
Label23.Visible = False
Label20.Visible = False
Label22.Visible = False
Label24.Visible = False
Label51.Visible = False
MultiPage2.Visible = False
在这些之后,我尝试重新绘制框架:
Frame1.Repaint
试图重新绘制整个用户表单:
Me.Repaint
已尝试重新加载图片:
Sub LoadSkin()
Dim Path As String
Path = ThisWorkbook.Path & "\Nechytat\Skins\" & Worksheets("Data").Range("R" & Worksheets("Data").Range("B4").Value).Value
With ZZZDashboard.Frame1
.Picture = LoadPicture(Path & ".bmp")
.PictureSizeMode = fmPictureSizeModeStretch
.Height = ZZZDashboard.Height
.Width = ZZZDashboard.Width - ZZZDashboard.Frame2.Width
.Left = ZZZDashboard.Frame2.Width
End With
End Sub
尝试了 DoEvents,尝试再次调用 userform_initialize,甚至尝试组合这些方法。
Private Sub CommandButton1_Click()
Label23.Visible = False
Label20.Visible = False
Label22.Visible = False
Label24.Visible = False
Label51.Visible = False
MultiPage2.Visible = False
Frame1.Picture = LoadPicture("")
DoEvents
Frame1.Repaint
Me.Repaint
DoEvents
Call LoadSkin
Frame1.Repaint
DoEvents
End Sub
到目前为止,None 个已成功。这看起来很容易解决,但我就是想不通。
我建议您在一个多页面中创建两个页面。一个只有背景图像,而另一个具有该图像和控件。您可以通过将 multiPage 的值设置为所需的值来控制哪个页面可见。要隐藏多页附带的选项卡,请将其顶部置于表单上的负值。
我在用户表单的帮助下创建了一个仪表板。我用框架加载了背景图片。
我想创建一个隐藏右侧菜单的按钮,以便可以看到整个背景图片。但是,当我隐藏菜单时(它们是标签和1个多形式),标签后面留下一个白色方块,所以看不到图片。
我已经尝试了多种方法来解决这个问题,但是 none 目前为止它们都有效。我用它来隐藏菜单:
Label23.Visible = False
Label20.Visible = False
Label22.Visible = False
Label24.Visible = False
Label51.Visible = False
MultiPage2.Visible = False
在这些之后,我尝试重新绘制框架:
Frame1.Repaint
试图重新绘制整个用户表单:
Me.Repaint
已尝试重新加载图片:
Sub LoadSkin()
Dim Path As String
Path = ThisWorkbook.Path & "\Nechytat\Skins\" & Worksheets("Data").Range("R" & Worksheets("Data").Range("B4").Value).Value
With ZZZDashboard.Frame1
.Picture = LoadPicture(Path & ".bmp")
.PictureSizeMode = fmPictureSizeModeStretch
.Height = ZZZDashboard.Height
.Width = ZZZDashboard.Width - ZZZDashboard.Frame2.Width
.Left = ZZZDashboard.Frame2.Width
End With
End Sub
尝试了 DoEvents,尝试再次调用 userform_initialize,甚至尝试组合这些方法。
Private Sub CommandButton1_Click()
Label23.Visible = False
Label20.Visible = False
Label22.Visible = False
Label24.Visible = False
Label51.Visible = False
MultiPage2.Visible = False
Frame1.Picture = LoadPicture("")
DoEvents
Frame1.Repaint
Me.Repaint
DoEvents
Call LoadSkin
Frame1.Repaint
DoEvents
End Sub
到目前为止,None 个已成功。这看起来很容易解决,但我就是想不通。
我建议您在一个多页面中创建两个页面。一个只有背景图像,而另一个具有该图像和控件。您可以通过将 multiPage 的值设置为所需的值来控制哪个页面可见。要隐藏多页附带的选项卡,请将其顶部置于表单上的负值。