用户在图12-6 中可以看到,如果仅仅只靠设置对象的属性,还 不能设置出满意的窗体。如列表框和组合列表框的选项就无法通过 设置属性来设置。此时需要调用对象的各种方法来设置。
对象的方法很多,对象不同,方法也不尽相同。列表框和组合列 表框都有一个AddItem 方法,通过调用这个方法,即可在列表框和 组合列表框中加入相应的选项。
为了在文档打开时能够自动对窗体的对象进行初始化,可以在 AutoOpen 过程中调用,其代码如下:
Public Sub AutoOpen()
ListBox1.AddItem "党员"
ListBox1.AddItem "团员"
ListBox1.AddItem "民主党派"
ListBox1.AddItem "无党派人士"
ComboBox1.AddItem "北京"
ComboBox1.AddItem "广西"
ComboBox1.AddItem "广东"
ComboBox1.AddItem "陕西"
ComboBox1.AddItem "山西"
ComboBox1.AddItem "山东"
End Sub
通过以上代码,在打开文档时如果设置了运行自动宏,即可显示如图12-7 所示的 界面。
如果【选项】对话框的【编辑器】选项卡中设置了【自动列出成 员】复选框,那么在输入某个对象的名称后输入“.”,即可在屏幕上列出该对象的方法和属性,图12-8 所示的是自动组合列表框的成 员。
对象的方法前面由图标来标识,其他的为该对象的属性。下面 介绍VBA 中经常用到的一些方法及其意义。
Add 方法
用于在 TabStrip 或多页中添加或插入一个标签或页,或通过其 程序设计标识符 (ProgID)在页或窗体中添加控件。
- 语法:
对于多页和 TabStrip :Set Object = object.Add( [ Name [, Caption [, index]]])
对于其他控件:Set Control = object.Add( ProgID [, Name [, Visible]])
Add 方法的语法包括表12-6 所示成分。
AddItem 方法
对于单列的列表框或组合框,在列表中添加一项。对于多列的列 表框或组合框,在列表中添加一行。 - 语法
Variant = object.AddItem [ item [, varIndex]]
AddItem 方法的语法有表12-7 所示的成分。
Clear 方法
从一个对象或集合中删去所有对象。 - 语法
object.Clear
object 为必需的有效对象。
Copy 方法
将对象的内容复制到剪贴板上。 - object.Copy
object 为必需的有效对象。
Cut 方法
从一个对象中删除选定的信息并将它送到剪贴板。
语法
object.Cut
object 为必需的有效对象。
DropDown 方法
显示组合框的列表区。
语法
object.DropDown
object 为必需的有效对象。
在组合框中使用DropDown 方法打开组合框中的列表。
GetFormat 方法
返回一个整数值,表明指定的格式是否在 DataObject 上。
语法
Boolean = object.GetFormat(format)
GetFormat 方法的语法成分如表12-8 所示。
设置
format 的设置如表12-9 所示。
GetFromClipboard 方法
从剪贴板复制数据到 DataObject。 - 语法
String = object.GetFromClipboard( ) - 说明
DataObject 可以包含多个数据项,但每个数据项必须有不同的 格式。例如,DataObject 可以包含一个文本项和用户定义项,但不 能同时有两个文本项。
GetText 方法
用特定的格式在 DataObject 中检索一文本串。 - 语法
String = object.GetText([ format])
GetText 方法的语法成分如表12-10 所示。
说明
DataObject 支持多种格式,但只支持每种格式的一个数据项。 例如,DataObject 可能包含一个文本项和一个自定义格式的项;但 不能包含两个文本项。
如果不指定格式,GetText 方法要求从 DataObject 中得到文本 格式的信息。
Item 方法
返回集合的一个成员,无论按位置,还是按名称。
语法
Set Object = object.Item(collectionindex)
Item 方法的语法成分如表12-11 所示。
设置
collectionindex 可以是字符串,也可以是整数。如果是字符串, 则必须是一个有效的成员名。如果是一个整数,其最小值为 0,而 最大值比集合中的项目数少 1。
Move 方法
移动一个窗体或控件,或者移动Controls 集合中的所有控件。
语法
对于窗体或控件
object.Move([ Left [, Top [, Width [, Height [, Layout]]]]])
对于 Controls 集合
object.Move(X, Y)
Move 方法的语法成分如表12-12 所示。
设置
Left、Top、Width、Height、X 和Y 参数的最大值和最小值,随应用程序的不同而 不同。
Paste 方法
把剪贴板上的内容传送到一个对象。
语法
object.Paste
说明
将粘贴到组合框或者文本框中的数据作为文本来处理。
粘贴方法若用于窗体,可将任何对象粘贴到窗体上。
PutInClipboard 方法
将数据从 DataObject 移到剪贴板上。
RedoAction 方法
其作用与目前大多数撤消操作相反。应用程序的不同而 不同。
语法
Boolean = object.RedoAction
说明
重复取最后一个撤消操作的相反结果,这个撤消不一定是最后一个采取的动作。不是所有的操作都能撤消的。
例如,往文本框中粘贴文本之后,然后选择【撤消】命令删除这段文本,那么用【重复】命令又可以把这段文本放回去。
如果 RedoAction 成功,它返回 True。
Remove 方法
从集合中删除一个成员,或者从框架、页面或窗体中删除一个控件。
语法
object.Remove(collectionindex)
Remove 方法的语法成分如表12-13 所示。
说明
此方法只删除在运行时间添加的控件。但如果想删除在设计时间添加的控件,则会 出错。
RemoveItem 方法
从列表框或组合框的列表中删去一行。
语法
Boolean = object.RemoveItem index
RemoveItem 方法的语法有以下几个成分:
如果列表框被数据连接(也就是,当RowSource 属性为列表框规定了数据源时),此方法不能从该列表中删去一行。
Repaint 方法
重画窗体或页,更新显示。
语法
Boolean = object.Repaint
说明
倘若一个对象的内容或者外貌严重地改变了,而且不想等待到系统自动重画这个区域。那么 Repaint 方法很有用。
Scroll 方法
移动对象上的滚动条。
语法
object.Scroll([ ActionX [, ActionY]])
Scroll 方法的语法如表12-15 所示。
设置
ActionX 和 ActionY 的设置见表12-16。
SetDefaultTabOrder 方法
用默认的自上向下和自左向右的 Tab 键顺序来为窗体上的每个控件设置TabIndex 属性。
语法
object.SetDefaultTabOrder
说明
Microsoft 窗体设置的 Tab 键顺序是从窗体左上角的控件开始, 向右移动。离窗体左边缘越近的越是排在 Tab 键顺序的前面。如果有不止一个控件到窗体左边界的距离相同,那么 Tab 键顺序的值便 自上向下地分配,谁在上面谁就在前面。
SetFocus 方法
将焦点移动到对象的实例中。
语法
object.SetFocus
说明
若设置焦点失败,焦点又回到原来的对象上,并产生一个错误。
在默认情况下,设置焦点到一个控件并不激活该控件的窗口,也没有将其置于其他控件的上面。
SetFocus 方法对于空的框架以及包含其他控件的框架都有效。 空的框架自身接受焦点,任何后续的键盘事件都作用于该框架。在 包含其他控件的框架中,焦点移到该框架中的第一个控件,后续的 键盘事件皆作用于拥有焦点的控件。
SetText 方法
用特定的格式复制文本串到 DataObject。
语法
object.SetText(StoreData [, format])
SetText 方法的语法成分如表12-17 所示。
StartDrag 方法
初始化针对 DataObject 的拖放操作。
语法
fmDropEffect=Object. StartDrag([Effect as fmDropEffect])
StartDrag 方法的语法成分如表12-18 所示。
设置
Effect 的设置如表12-19 所示。
说明
拖动操作开始于当前鼠标指针位置以及当前键盘状态,而结束于用户释放鼠标按键。拖动操作的最终效果取决于为放置目标所选的作用。
例如,控件的 MouseMove 事件可能包含 StartDrag 方法。当用户单击控件并移动鼠标时,鼠标箭头将改变,以示Effect 对于放置目标是否有效。
UndoAction 方法
与最近的动作(必须是支持【撤消】命令的)相反的动作。
语法
Boolean = object.UndoAction
ZOrder 方法
将对象放在 z-顺序的前面或后面。z 顺序是在窗体的z 轴(深度) 方向上,窗体上的控件的视觉层次。z 顺序可决定什么控件在其他控件之前。
语法
object.ZOrder([ zPosition])
ZOrder 方法的语法成分如表12-20 所示。
设置
zPosition 的设置如表12-21 所示。
说明
当几个窗体和控件出现在用户面前时,z-顺序决定它们的层叠方 式。在 z-顺序后面的项被它前面的项遮盖;在z-顺序前面的项总出 现它后面的项的上面。当 zPosition 参数被略去时,对象便被带到 了前面。
在【设置】模式中用【置前】或【置后】命令设置 z-顺序。【置 前】命令与使用 ZOrder 方法将对象放在z-顺序之前的效果相同。 【置后】命令与使用ZOrder 方法将对象放在零序号之后的效果相同。
该方法不影响 Controls 集合中控件的内容或顺序。
注意:
叠放命令(如【置后】或【置前】命令)不能重复或撤消。例如, 若选择一个对象并单击快捷菜单上的【下移一层】命令,则该操作 将不能重复或撤消。