CreateControl 方法

此頁沒有內(nèi)容條目
內(nèi)容

expandtri全部顯示

CreateControl 方法在指定的已打開窗體上創(chuàng)建一個控件。例如,假設(shè)您正在建立一個便于用戶構(gòu)建特殊窗體的自定義向?qū)А?梢栽谙驅(qū)е惺褂?CreateControl 方法將適當?shù)目丶砑拥酱绑w上。

CreateControl(formname, controltype[, section[, parent[, columnname[, left[, top[, width[, height]]]]]]])

CreateControl 方法包含下列參數(shù):

參數(shù)

說明

formname

字符串表達式,用于標識要在其中創(chuàng)建控件的已打開窗體或報表的名稱。

controltype

下列固有常量之一,用于標識要創(chuàng)建的控件的類型。若要在“對象瀏覽器”中查看這些常量并將其粘貼到代碼內(nèi),請在 Visual Basic工具欄上單擊“對象瀏覽器”,然后單擊“工程/庫”框中的 Access,最后單擊“類”框中的 AcControlType。


常量

控件


acBoundObjectFrame

綁定對象框


acCheckBox

復選框


acComboBox

組合框


acCommandButton

命令按鈕


acCustomControl

ActiveX 控件


acImage

圖像


acLabel

標簽


acLine

線條


acListBox

列表框


acObjectFrame

未綁定對象框


acOptionButton

選項按鈕


acOptionGroup

選項組


acPage


acPageBreak

分頁符


acRectangle

矩形


acSubform

子窗體


acTabCtl

選項卡控件


acTextBox

文本框


acToggleButton

切換按鈕

section

下列固有常量之一,用于標識將包含新控件的節(jié)。若要在“對象瀏覽器”中查看這些常量并將其粘貼到代碼中,請在 Visual Basic工具欄上單擊“對象瀏覽器”,然后單擊“工程/庫”框中的 Access,最后單擊“類”框中的 AcSection。


常量

節(jié)


acDetail

(默認)主體節(jié)


acHeader

窗體或報表頁眉


acFooter

窗體或報表頁腳


acPageHeader

頁面頁眉


acPageFooter

頁面頁腳


acGroupLevel1Header

分組級別 1 頁眉(僅用于報表)


acGroupLevel1Footer

分組級別 1 頁腳(僅用于報表)


acGroupLevel2Header

分組級別 2 頁眉(僅用于報表)


acGroupLevel2Footer

分組級別 2 頁腳(僅用于報表)


如果報表有另外的分組級別,頁首/頁腳將成對從 9 開始連續(xù)編號。

parent

字符串表達式,用于標識附加控件的父控件名稱。對于沒有父控件的控件,該參數(shù)可以是零長度字符串,也可以忽略。

columnname

如果創(chuàng)建的是一個數(shù)據(jù)綁定型控件,則該參數(shù)為控件將綁定到的字段的名稱。


如果創(chuàng)建的是一個不綁定到字段的控件,則應(yīng)將該參數(shù)設(shè)為零長度字符串。

left, top

數(shù)值表達式,表示控件左上角的坐標值,以為單位。

width, height

數(shù)值表達式,表示控件的寬度和高度,以緹為單位。

 

說明

可以使用自定義向?qū)е械?CreateControlCreateReportControl 方法來創(chuàng)建窗體或報表上的控件。兩個方法都將返回一個 Control 對象。

只可以分別在窗體“設(shè)計”視圖報表“設(shè)計”視圖中使用 CreateControlCreateReportControl 方法。

可以使用 parent 參數(shù)確定主控件和次控件之間的關(guān)系。例如,如果文本框有一個附屬標簽,則文本框是主(父)控件,標簽是次(子)控件。創(chuàng)建標簽控件時,請將其 parent 參數(shù)設(shè)為標識父控件名稱的字符串。創(chuàng)建文本框時,請將其 parent 參數(shù)設(shè)置為零長度字符串。

在創(chuàng)建復選框、選項按鈕或切換按鈕時,也可以設(shè)置 parent 參數(shù)。選項組是其所含復選框、選項按鈕或切換按鈕的父控件。只有標簽、復選框、選項按鈕或切換按鈕等控件才有父控件。當然這些控件也可以不使用父控件而獨立創(chuàng)建。

根據(jù)正在創(chuàng)建的控件類型,以及它是否綁定到表中字段這兩個條件,可以設(shè)置 columnname 參數(shù)。綁定到字段的控件可以是文本框、列表框、組合框、選項組和綁定對象框。另外,如果切換按鈕、選項按鈕和復選框控件沒有包含在選項組中,則也可以與字段綁定。

如果指定 columnname 參數(shù)的字段名稱,則可以創(chuàng)建一個綁定到該字段的控件。然后所有控件的屬性都將自動設(shè)置為與之對應(yīng)的字段屬性值。例如,控件的 ValidationRule 屬性值將與該字段的屬性值相同。

注釋  如果向?qū)г谛碌幕颥F(xiàn)有的窗體或報表中創(chuàng)建控件,它必須先在“設(shè)計”視圖中打開窗體或報表。

若要從窗體或報表中刪除控件,請使用 DeleteControlDeleteReportControl 語句。

示例

下面的示例首先基于“訂單”表創(chuàng)建一個新窗體,然后使用 CreateControl 方法在窗體上創(chuàng)建文本框控件和附屬標簽控件。

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