人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

動態添加控件—運用VB6的新技巧

動態添加控件—運用VB6的新技巧

更新時間:2022-08-28 文章作者:未知 信息來源:網絡 閱讀次數:

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。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 石首市| 沈阳市| 安宁市| 衡东县| 个旧市| 南宁市| 沾益县| 伊宁县| 资源县| 赣榆县| 塔河县| 历史| 武冈市| 朝阳区| 儋州市| 深州市| 渭南市| 霞浦县| 永昌县| 鸡西市| 巴林左旗| 葵青区| 屏东市| 鄂托克旗| 兴化市| 江永县| 崇左市| 老河口市| 繁峙县| 本溪| 合阳县| 宜君县| 巴青县| 武宣县| 全南县| 辽中县| 阳江市| 诏安县| 黔西县| 永和县| 柞水县|