Application.CreateControl 方法 (Access)

CreateControl 方法在指定的已打开窗体上创建一个控件。 例如,假设您正在建立一个便于用户构建特殊窗体的自定义向导。 使用向导中的 CreateControl 方法将相应的控件添加到窗体。

语法

表达式CreateControl (FormNameControlTypeSectionParentColumnNameLeftTopWidthHeight)

expression:表示 Application 对象的变量。

参数

名称 必需/可选 数据类型 说明
FormName 必需 字符串 要在其中创建控件的已打开窗体或报表的名称。
ControlType 必需 AcControlType 一个 AcControlType 常量,表示要创建的控件的类型。
Section 可选 AcSection 一个 AcSection 常量,用于标识将包含新控件的节。
Parent 可选 Variant 附加控件的父控件的名称。 对于没有父控件的控件,请对此参数使用零长度字符串或省略它。
ColumnName 可选 Variant 如果控件是数据绑定控件,则控件将绑定到的字段的名称。
左侧,顶部 可选 Variant 控件左上角的坐标( 以 twips 为单位)。
Width, Height 可选 Variant 表示控件的宽度和高度(以缇为单位)的数值表达式。

返回值

控制

备注

使用自定义向导中的 CreateControlCreateReportControl 方法在窗体或报表上创建控件。 这两种方法都返回 Control 对象。

仅在窗体设计视图或报表设计视图中分别使用 CreateControlCreateReportControl 方法。

使用 Parent 参数标识主控件与从属控件之间的关系。 例如,如果文本框具有附加标签,那么该文本框将为主(或父)控件,而标签则为次(或子)控件。 创建标签控件时,将其 Parent 参数设置为标识父控件名称的字符串。 创建文本框时,将其 Parent 参数设置为零长度字符串。

在创建复选框、选项按钮或切换按钮时,还可以设置 Parent 参数。 选项组是其所含复选框、选项按钮或切换按钮的父控件。 只有标签、复选框、选项按钮或切换按钮等控件才有父控件。 当然这些控件也可以不使用父控件而独立创建。

根据要创建的控件的类型以及该参数是否绑定到表中的字段,设置 ColumnName 参数。 绑定到字段的控件可以是文本框、列表框、组合框、选项组和绑定对象框。 另外,如果切换按钮、选项按钮和复选框控件没有包含在选项组中,则也可以与字段绑定。

如果为 ColumnName 参数指定字段的名称,则会创建绑定到该字段的控件。 然后,所有控件属性将被自动设置为任何相应字段属性的设置。 例如,控件的 ValidationRule 属性的值将与字段的该属性的值相同。

注意

如果向导在新的或现有的窗体或报表中创建控件,它必须先在设计视图中打开窗体或报表。

若要从窗体或报表中删除控件,请使用 DeleteControlDeleteReportControl 方法。

示例

以下示例首先基于 Orders 表创建一个新窗体。 然后,它使用 CreateControl 方法在窗体上创建文本框控件和附加的标签控件。

Sub NewControls() 
 Dim frm As Form 
 Dim ctlLabel As Control, ctlText As Control 
 Dim intDataX As Integer, intDataY As Integer 
 Dim intLabelX As Integer, intLabelY As Integer 
 
 ' Create new form with Orders table as its record source. 
 Set frm = CreateForm 
 frm.RecordSource = "Orders" 
 ' Set positioning values for new controls. 
 intLabelX = 100 
 intLabelY = 100 
 intDataX = 1000 
 intDataY = 100 
 ' Create unbound default-size text box in detail section. 
 Set ctlText = CreateControl(frm.Name, acTextBox, , "", "", _ 
 intDataX, intDataY) 
 ' Create child label control for text box. 
 Set ctlLabel = CreateControl(frm.Name, acLabel, , _ 
 ctlText.Name, "NewLabel", intLabelX, intLabelY) 
 ' Restore form. 
 DoCmd.Restore 
End Sub

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。