控件显示与隐藏
一个Picturebox作为容器,下面贴4个Button,另有四个Frame,里面各放一个控件(不一定是MS的,可能有商业软件提供的组件),点第一个Button,Picturebox里出现Frame1中的控件,点Button2,Frame2中的控件加载入Picturebox中,同时原先加载的控件被隐藏。高分悬赏,愿提供示例程序的再加分,要有截图,代码,引用后再加分!PS:不想要ActiveX控件,按照我上面说的就可以了。 展开
放置一个PictureBox,命名为picture1
在窗体上放4个commmand,分别命名为command(0),command(1),command(2),command(3) (控件数组)
再放4个Frame,分别命名为frame(0),frame(1),frame(2),frame(3)。
复制以下代码:
Private Sub Command_Click(Index As Integer)
Set Frame(Index).Container = Picture1
Frame(Index).Visible = True
Dim i As Integer
Select Case Index
Case 0 '第一个
For i = 1 To Command.UBound
Set Frame(i).Container = Me
Frame(i).Visible = False
Next
Case Command.UBound '最后一个
For i = 0 To Command.UBound - 1
Set Frame(i).Container = Me
Frame(i).Visible = False
Next
Case Else
For i = 0 To Index - 1
Set Frame(i).Container = Me
Frame(i).Visible = False
Next
For i = Index + 1 To Command.UBound
Set Frame(i).Container = Me
Frame(i).Visible = False
Next
End Select
End Sub
Private Sub Form_Load()
Dim i As Integer
For i = 0 To Frame.UBound
Frame(i).Visible = False
Frame(i).Left = 0
Frame(i).Top = 0
Next
End Sub
代码效果:
你可以放置任意数目Frame和Command(只要两个一样),程序启动时候Frame自动是隐藏的。点击按钮则指定Frame显示在Picture1中。
图片是以5个Frame作为测试的。
'方法1,如果 Frame1 和 Frame2 都在 Picture1中, 直接隐藏或显示 Frame1 和 Frame2
Private Sub Command1_Click()
Frame1.Visible = True
Frame2.Visible = False
End Sub
Private Sub Command2_Click()
Frame1.Visible = False
Frame2.Visible = True
End Sub
'方法2,如果 Frame1 和 Frame2 不在 Picture1中,将 Frame1 或 Frame2 中的控件搬运到 Picture1
Private Sub Command1_Click()
Set Check1.Container = Picture1 '将 Check1“搬运”到 Picture1
Set Check2.Container = Frame2 '将 Check2“搬运”回 Frame2
End Sub
Private Sub Command2_Click()
Set Check2.Container = Picture1 '将 Check2“搬运”到 Picture1
Set Check1.Container = Frame1 '将 Check1“搬运”回 Frame1
End Sub