用户在图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 所示。
[NextPage]
设置 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 方法的语法有以下几个成分:
[NextPage]
如果列表框被数据连接(也就是,当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 集合中控件的内容或顺序。 注意: 叠放命令(如【置后】或【置前】命令)不能重复或撤消。例如,若选择一个对象并单击快捷菜单上的【下移一层】命令,则该操作将不能重复或撤消。
|