金字塔的VBA接口支持Microsoft 窗体,为我们在金字塔中实现特殊定制界面需求提供了新的解决方案。

Microsoft 窗体参考摘抄自微软相关技术手册。其中绝大部分的控件事件、属性、方法金字塔均已经支持。手册中提供的绝大部分示例均可在金字塔中直接使用。以便于基础用户参考学习。

# 窗体概念

VB窗体相关的概念,请阅读下方微软官方链接,涵盖相关 UserForms 和 控件的信息,以及如何使用 Visual Basic。此处不再赘述。

# 工具箱

显示标准Visual Basic控件以及ActiveX添加到项目中的任何可插入控件和可插入对象。

可以通过向工具箱 添加 页面或通过使用"工具"菜单中的"其他控件"命令添加控件来 自定义工具箱。 在添加页面时,Select Objects 工具始终在页面上可用。

按钮 Icon 说明
Select Objects Select Objects 是工具箱中唯 一不绘制 控件的项目。 如果选择此项,您只能移动窗体上已绘制的控件或调整其大小。
Label 使您能够具有不希望用户更改的文本,如图形下面的标题。
TextBox 保留用户可输入或更改的文本。
ComboBox 允许您绘制组合列表框和文本框。 用户可从列表中选择项,也可以在文本框中输入值。
ListBox 用于显示用户可从中进行选择的项列表。 如果列表包含可一次性显示的多个项,则可以滚动列表。
CheckBox 创建一个框,用户可轻松选择它来指示某些内容为 true 还是 false,也可以选择它在用户可选择多个项时显示多个选择。
OptionButton 允许您显示用户只能从中选择一项的多个选择。
ToggleButton 创建一个用于在打开和关闭状态之前切换的按钮。
Frame 允许您为控件创建图形或功能分组。 若要对控件进行分组,请先绘制框架,然后在框架中绘制控件。
CommandButton 创建用户可以选择执行命令的按钮。
TabStrip 允许您为应用程序中的窗口或对话框的相同区域定义多个页。
MultiPage 将多屏信息表示为单个集合。
ScrollBar 提供一个图形工具,该工具可用于快速浏览项的长列表或大量信息航、按照某个缩放比例指示当前位置或用作速度或数量的输入设备或指示器。
SpinButton 可以与另一个控件一起用于递增和减少数字的微调框控件。 您还可以使用该控件向前和向后浏览值的范围或项的列表。
Image 通过窗体上的位图、图标或元文件显示图形图像。 Image 控件中显示的图像只能为图案,并且它使用的资源要少于 PictureBox 使用的资源。

# 金字塔与office 窗体区别

  金字塔中的窗体与OFFICE其他组件的窗体在访问其内部控件时稍有不同,对于金字塔中所有的内部控件需要跟随窗体名称才能正常使用,即窗体名称_控件名称;具体格式如下:

  • 属性:窗体名称_控件名称.属性,使用属性是通过符号点【.】完成。
  • 方法:窗体名称_控件名称.方法,使用方法是通过符号点【.】完成。
  • 事件:窗体名称_控件名称_事件,使用方法是通过符号下划线【_】完成。

例如访问UserForm窗体的CommandButton1控件。代码如下:

界面布局
'***********************************************************************************************************
'1. 注释部分为office窗体语句。过程名称和控件名称均不含窗体名。
'2. 而金字塔中,在使用窗体时,过程、事件、控件均需要采用"用窗体名_"的方式处理。如:UserForm_
'3. 若要使用该示例,请将代码粘贴到包含名为 CommandButton1 的命令按钮的窗体的声明变量部分。
'***********************************************************************************************************
'Sub UserForm_Initialize()
'    CommandButton.Caption  = "量化神奇之旅"         
'End Sub

Sub UserForm_Initialize()
    UserForm_CommandButton1.Caption  = "量化神奇之旅" 
End Sub

'Sub CommandButton1_Click ()
'    If CommandButton1.Caption = "金字塔--停止" or CommandButton1.Caption  = "量化神奇之旅" Then     
'        CommandButton1.Caption = "金字塔--启动"    
'    Else
'        CommandButton1.Caption = "金字塔--停止"  
'    End If
'End Sub
Sub UserForm_CommandButton1_Click ()
    If UserForm_CommandButton1.Caption = "金字塔--停止" or UserForm_CommandButton1.Caption  = "量化神奇之旅" Then     
        UserForm_CommandButton1.Caption = "金字塔--启动"      
    Else
        UserForm_CommandButton1.Caption = "金字塔--停止"  
    End If
End Sub
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

效果如下: