• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    動態添加控件—利用VB6的新功能

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 17次 | 進入軟件測試論壇討論

    領測軟件測試網 VB6有一個新功能,可以動態添加控件,不用控件數組:

    object.Add (ProgID, name, container)
    參數說明  


    Object 必需的。一個對象表達式,其值是“應用于”列表中的一個對象。
    ProgID 必需的。一個標識控件的字符串。大多數控件的 ProgID 都可通過查看對象瀏覽器來決定?丶 ProgID 是由控件的庫和類組成的。
    例如,CommandButton 控件的 ProgID 是 VB.CommandButton。在ProgID 與對象瀏覽器中所顯示的不一樣的情況下,Visual Basic
    將顯示一個包括正確 ProgId 的錯誤信息。
    name 必要的。一個字符串,用來標識集合的成員。
    container 可選的。一個對象引用,它指定控件的容器。如果沒有指定或為NULL,缺省值為 Controls 集合所屬的容器。通過指定該參數,可以把一個控件放置在任何現存的容器控件(如 Frame 控件)中。用戶控件或 ActiveX 文檔也可以作為一個容器。



    舉例: //在picture1上面添加一個commandbutton
    Private Sub Form_Load()
    Form1.Controls.Add "VB.CommandButton", "cmdOk", Picture1
    With Form1!cmdOk
    .Visible = True
    .Width = 500
    .Caption = "確認(&Y)"
    End With
    End Sub




      重點:當您添加一個未引用的需要許可證的控件到一個現存的(已部署好的)應用程序時,在使用 Add 方法之前您必須也添加這個控件的許可證關鍵字。

    在運行時添加未引用的控件:
      您也可以利 Add 方法來動態添加一個在工程中沒有被引用的控件。(“未引用的”控件是不出現在 Toolbox 中的控件)。為此,您必須也把控件的License 關鍵字添加到 Licenses 集合中。下面的示例中在添加控件本身之前添加了控件的許可證關鍵字:

    Option Explicit
    Private WithEvents extCtl As VBControlExtender

    Private Sub Form_Load()
    Licenses.Add "prjWeeks.WeeksCtl", "xydsfasfjewfe"
    Set extCtl = Form1.Controls.Add("prjWeeks.WeeksCtl", "ctl1")
    extCtl.Visible = True The control is invisible by default.
    End Sub

      但是,為了編程這樣一個未引用控件的事件,您必須使用 WithEvents 關鍵字聲明一個對象變量為VBControlExtender 對象(如上),并且設置該對象變量到Add 方法返回的引用上。然后,利用VBControlExtender 對象的 ObjectEvent事件來編程該控件的事件。下面是一個簡單的例子。

    Option Explicit
    Dim WithEvents objExt As VBControlExtender 聲明 Extender 變量

    Private Sub LoadControl()
    Licenses.Add "Project1.Control1", "xydsfasfjewfe"
    Set objExt = Controls.Add("Project1.Control1", "myCtl")
    objExt.Visible = True
    End Sub

    Private Sub extObj_ObjectEvent(Info As EventInfo)
    使用 Select Case 編程控件的事件。
    Select Case Info.Name
    Case "Click"
    這里處理 Click 事件。
    現在顯示其他的 case
    Case Else 未知事件
    這里處理未知事件。
    End Select
    End Sub

    Note: 不能把一個固有的控件指定給這個 VBControlExtender 變量; 任何這種試圖將引起類型不匹配錯誤。

      但是,您也可以通過使用 WithEvents 關鍵字聲明一個對象變量,并且設置該方法返回的引用為該變量,從而編程一個動態添加控件的事件,如下所示。

    Option Explicit
    聲明對象變量為 CommandButton 。
    Private WithEvents cmdObject As CommandButton

    Private Sub Form_Load()
    Set cmdObject = Form1.Controls.Add("VB.CommandButton", "cmdOne")
    cmdObject.Visible = True
    cmdObject.Caption = "Dynamic CommandButton"
    End Sub

    Private Sub cmdObject_Click()
    Print "This is a dynamically added control"
    End Sub
      如果希望添加一個用戶控件或任何 ActiveX 控件到您的窗體,必須或者把這個控件添加到“工具箱”,或者把控件的 License 關鍵字添加到 Licenses集合中。有關詳細信息請參閱“增加方法 (Licenses 集合)”。

      注意:如果您添加一個 ActiveX 或用戶控件到您的工程,但是沒有在窗體中使用它,您也必須不要選定“工程屬性”對話框的“生成” 選項卡上的“刪除有關未使用的 ActiveX 控件”選項。如果您的應用程序試圖添加該控件,那么該 Add 方法將失敗,因為必需的信息已經被丟棄。

    刪除控件

      要刪除動態添加的控件,用“移除”方法。請注意,您只能刪除那些用“添加”方法添加的控件(與用“Load”語句添加的控件進行對比)下面的示例刪除一個動態添加的控件:

    Form1.Controls.Remove "ctl1" 該控件的名稱為 ctl1。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>