VBA控件常规使用--multiPage 控件

使用 MultiPage 控件来处理大量可被分为几类排序信息。 MultiPage 控件由组成一个或多个 Page 对象, 每个包含不同组的控件。 以编程方式通过设置 MultiPage 控件的 Value 属性设置活动页。
如何控制 MultiPage 控件编程
要添加 MultiPage 控件并控制它通过使用宏, 请按照下列步骤操作:
1.启动 Excel, 并打开新空白工作簿。
2.在 工具 菜单, 指向 宏 , 然后单击 VisualBasic 编辑器 。
3.在 插入 菜单上, 单击要在工作簿中插入 UserForm UserForm 。
4.添加到 UserForm MultiPage 控件。
5.将 Label 控件添加到 Page 1 多页 控件上。
6.将 TextBox 控件添加到 Page 1 多页 控件上。
7.MultiPage 控件, 上单击, Page 2 , 然后重复步骤 5 和 6 以添加一个 Label 控件和 TextBox 控件。
8.双击要打开代码窗口对 MultiPage 控件 MultiPage 控件。
9.在代码窗口, 为 MultiPage1 Change 事件键入下列代码:
Private Sub MultiPage1_Change()
            Select Case MultiPage1.Value
            ' If activating Page1...
            Case 0
            Label1.Caption = TextBox2.Text
            TextBox1.Text = ""
            ' If activating Page2...
            Case 1
            Label2.Caption = TextBox1.Text
            TextBox2.Text = ""
            End Select
            End Sub
10.在代码窗口, 为 UserForm Initialize 事件键入下列代码:
Private Sub UserForm_Initialize()
            ' Force Page1 to be active when UserForm is displayed.
            MultiPage1.Value = 0
            Label1.Caption = ""
            End Sub
11.在 运行 菜单上, 单击 运行子过程 / 用户窗体 。

Page 1, 上 TextBox 控件中键入 Test 。 当单击 Page 2 选项卡、 TextBox 2 被清除, 和标题为 Label 2 变为项, 在 Page 1 上 TextBox 所做 (" Test ") (" Test ")
如何通过使用 MultiPage 控件创建一个向导界面
将任务需要几个增量步骤, 向导界面可能会非常有效。 您可使用 MultiPage 控件以创建一个向导界面代替使用多用户窗体。 本示例操作具有三页 MultiPage 控件。 附加到对 UserForm Initialize 事件过程禁用 Page 2 和 Page3, 并强制 Page 1 的 多页 控件可活动。

注意 您通过使用 Pages 集合, 索引 MultiPage 控件的页面时集合中第一页是零页。 此过程还设置标题的 CommandButton 控件并禁用 < 备份 按钮。

注意的功能是分配给 CommandButton 1 控件的 Click 事件过程 " 后退 " 按钮 < 是分配给 CommandButton 2 是 Click 事件过程控制功能的下一步 > 按钮。 若要通过使用 MultiPage 控件, 创建一个向导界面请按照下列步骤:
1.启动 Excel, 并打开新空白工作簿。
2.在 工具 菜单, 指向 宏 , 然后单击 VisualBasic 编辑器 。
3.在 插入 菜单上, 单击要在工作簿中插入 UserForm UserForm 。
4.添加到 UserForm MultiPage 控件。
5.右键单击, " Page 1 选项卡, 然后单击要添加到 多页 控件 Page3 新页 。
6.添加一个 CommandButton 控件不位于 多页 控件上 UserForm 上。

重复此步骤可添加一个 UserForm 上二 CommandButton 控件。
7.双击以打开代码窗口对于 UserForm UserForm 。
8.在代码窗口, 为 UserForm Initialize 事件键入下列代码:
Private Sub UserForm_Initialize()
            With MultiPage1
            ' The next 2 lines disable Page2 & Page3.
            .Pages(1).Enabled = False
            .Pages(2).Enabled = False
            ' Make Page1 the active page.
            .Value = 0
            End With
            ' Set the caption on the CommandButtons.
            CommandButton1.Caption = "<Back"
            CommandButton1.Enabled = False
            CommandButton2.Caption = "Next>"
            End Sub
            ' Procedure for the "<Back" button
            Private Sub CommandButton1_Click()
            Select Case MultiPage1.Value
            Case 1                                 ' If Page2 is active...
            With MultiPage1
            .Pages(0).Enabled = True       ' Enable Page1.
            .Value = MultiPage1.Value - 1  ' Move back 1 page.
            .Pages(1).Enabled = False      ' Disable Page2.
            End With
            CommandButton1.Enabled = False     ' Disable Back button.
            Case 2                                 ' If Page3 is active...
            With MultiPage1
            .Pages(1).Enabled = True       ' Enable Page2.
            .Value = MultiPage1.Value - 1  ' Move back 1 page.
            .Pages(2).Enabled = False      ' Disable Page3.
            CommandButton2.Caption = "Next>"
            End With
            End Select
            End Sub
            ' Procedure for the "Next>" button
            Private Sub CommandButton2_Click()
            Select Case MultiPage1.Value
            Case 0                                  ' If Page1 is active...
            With MultiPage1
            .Value = MultiPage1.Value + 1   ' Move forward 1 page.
            .Pages(1).Enabled = True        ' Enable Page2.
            .Pages(0).Enabled = False       ' Disable Page1.
            End With
            CommandButton1.Enabled = True       ' Enable Back button.
            Case 1                                  ' If Page2 is active...
            With MultiPage1
            .Value = MultiPage1.Value + 1   ' Move forward 1 page.
            .Pages(2).Enabled = True        ' Enable Page3.
            .Pages(1).Enabled = False       ' Disable Page2.
            End With
            CommandButton2.Caption = "Finish"   ' Change Next button to Finish.
            Case 2                                  ' If Page3 is active...
            MsgBox "Finished!"                  ' User is Finished.
            Unload Me                           ' Unload the UserForm.
            End Select
            End Sub
            
9.在 运行 菜单上, 单击 运行子过程 / 用户窗体 。
当您单击下一步 > 激活 Page 2 后退 " 按钮可, 和 < 当您单击 Next > 第二次, Page3 激活并题注为 CommandButton 2 更改为 " 完成 "。
 

 

 
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个基于Go语言的walk库实现的多页窗口示例: ```go package main import ( "github.com/lxn/walk" . "github.com/lxn/walk/declarative" ) func main() { mw := new(MyMainWindow) if err := (MainWindow{ AssignTo: &mw.MainWindow, Title: "Multi-Page Example", MinSize: Size{300, 200}, Layout: VBox{}, Children: []Widget{ HSpacer{}, RadioButtonGroup{ Buttons: []RadioButton{ {Text: "Page 1", Value: 0}, {Text: "Page 2", Value: 1}, {Text: "Page 3", Value: 2}, }, Orientation: Horizontal, OnValueChanged: func(value int) { mw.Stack.SetCurrentIndex(value) }, }, HSpacer{}, Stack{ AssignTo: &mw.Stack, Pages: []Page{ {Title: "Page 1", Layout: VBox{}, Children: []Widget{ Label{Text: "This is Page 1"}, }}, {Title: "Page 2", Layout: VBox{}, Children: []Widget{ Label{Text: "This is Page 2"}, PushButton{Text: "Button 2"}, }}, {Title: "Page 3", Layout: VBox{}, Children: []Widget{ Label{Text: "This is Page 3"}, LineEdit{AssignTo: &mw.LineEdit}, PushButton{Text: "Button 3", OnClicked: func() { walk.MsgBox(mw, "Button 3", mw.LineEdit.Text(), walk.MsgBoxIconInformation) }}, }}, }, }, HSpacer{}, }, }.Create()); err != nil { panic(err) } mw.Run() } type MyMainWindow struct { *walk.MainWindow Stack *walk.Stack LineEdit *walk.LineEdit } ``` 该示例包含一个主窗口,其中有一个单选按钮组用于切换三个不同的页面。每个页面都包含一个不同的小部件,比如标签、按钮和文本框。使用Stack小部件,可以轻松地在这些页面之间进行切换。 注意:为了使该示例正常工作,需要安装walk库。可以使用以下命令在终端中安装walk库: ``` go get github.com/lxn/walk ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值