六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

在VB中動態(tài)添加可響應(yīng)消息的控件

[摘要]在VB編程中,經(jīng)常要根據(jù)不同的情況在運(yùn)行時向窗口中添加或者刪除控件,而各個控件還要響應(yīng)各種事件。在一般的情況下是首先在設(shè)計時將控件加入到窗口中,在它們的各個事件中寫入代碼,然后將它們的Visible屬性設(shè)置為False。在運(yùn)行時再使控件顯示出來,但是這樣既不方便同時也因?yàn)樵谠O(shè)計時在窗口中加入太多的...
    在VB編程中,經(jīng)常要根據(jù)不同的情況在運(yùn)行時向窗口中添加或者刪除控件,而各個控件還要
響應(yīng)各種事件。在一般的情況下是首先在設(shè)計時將控件加入到窗口中,在它們的各個事件中寫入
代碼,然后將它們的Visible屬性設(shè)置為False。在運(yùn)行時再使控件顯示出來,但是這樣既不方便
同時也因?yàn)樵谠O(shè)計時在窗口中加入太多的控件而使得程序的運(yùn)行速度變慢。下面我向大家介紹一
種通過編程在運(yùn)行時動態(tài)添加和刪除控件的方法
    首先建立一個工程文件,然后在Form1中加入以下的代碼:
    Dim WithEvents cmdMyCommand As VB.CommandButton
    Option Explicit
    注釋:在下面的定義中,程序定義了一個TextBox控件、一個CommandButton控件
    注釋:和一個附加控件。
    Dim WithEvents ctlDynamic As VBControlExtender
    Dim WithEvents ctlText As VB.TextBox
    Dim WithEvents ctlCommand As VB.CommandButton
    Dim WithEvents ctlCommandDel As VB.CommandButton
    Private Sub ctlCommandDel_Click()
        Dim i As Integer
        
        注釋:將控件的許可證信息刪除
        Licenses.Remove "MSComctlLib.TreeCtrl"
        If MsgBox("是否刪除所有控件", vbYesNo) = vbYes Then
        For i = 1 To Form1.Controls.Count
            Controls.Remove 0
        Next i
        End If
    End Sub
    Private Sub ctlCommand_Click()
        ctlText.Text = "你點(diǎn)擊的是控制按鈕"
    End Sub

    Private Sub ctlDynamic_ObjectEvent(Info As EventInfo)
        注釋:當(dāng)點(diǎn)擊樹形控件的某一個條目后,在ctlText中顯示條目。
        If Info.Name = "Click" Then
            ctlText.Text = "你點(diǎn)擊的條目是 " & _
                    ctlDynamic.object.selecteditem.Text
        End If
    End Sub

    Private Sub Form_Load()
        Dim i As Integer
        注釋: 將樹形控件的許可證信息加入到許可證集合中
        注釋: 如果許可證已經(jīng)存在,則會返回錯誤信息732
        Licenses.Add "MSComctlLib.TreeCtrl"

        注釋: 在Form中動態(tài)的加入一個樹形控件,如果你想樹形控件建立到不同的
        注釋:容器中,象一個Frame控件或者PictureBox控件,你只要將Controls.Add
        注釋:函數(shù)的第三個參數(shù)改為特定的容器名就可以了
        Set ctlDynamic = Controls.Add("MSComctlLib.TreeCtrl", _
                        "myctl", Form1)
        注釋:設(shè)置樹形控件的位置和尺寸
        ctlDynamic.Move 1, 1, 2500, 3500
        注釋:在樹形控件中加入10個節(jié)點(diǎn)
        For i = 1 To 10
            ctlDynamic.object.nodes.Add Key:="Test" & Str(i), _
                    Text:="Test" & Str(i)
            ctlDynamic.object.nodes.Add Relative:="Test" & Str(i), _
                    Relationship:=4, Text:="TestChild" & Str(i)
        Next i
        注釋:使樹形控件可見
        ctlDynamic.Visible = True

        注釋:加入一個TextBox
        Set ctlText = Controls.Add("VB.TextBox", "ctlText1", Form1)
        注釋:設(shè)置TextBox的位置和尺寸
        ctlText.Move (ctlDynamic.Left + ctlDynamic.Width + 50), _
                        1, 2500, 100
        注釋:將textBox的背景色設(shè)置為藍(lán)色并將前景色設(shè)置為白色
        ctlText.BackColor = vbBlue
        ctlText.ForeColor = vbWhite
        注釋:使TextBox可見
        ctlText.Visible = True

        注釋:加入一個CommandButton
        Set ctlCommand = Controls.Add("VB.CommandButton", _
                        "ctlCommand1", Form1)
        注釋:設(shè)置CommandButton的位置和尺寸
        ctlCommand.Move (ctlDynamic.Left + ctlDynamic.Width + 50), _
                        ctlText.Height + 50, 1500, 500
        注釋:設(shè)置CommandButton的標(biāo)題
        ctlCommand.Caption = "點(diǎn)擊"
        注釋:使CommandButton可見
        ctlCommand.Visible = True
        
        注釋:建立一個刪除按鈕
        Set ctlCommandDel = Controls.Add("VB.CommandButton", _
                        "ctlCommand2", Form1)
        ctlCommandDel.Move (ctlDynamic.Left + ctlDynamic.Width + 50), _
                        ctlText.Height + 650, 1500, 500
        ctlCommandDel.Caption = "刪除所有控件"
        ctlCommandDel.Visible = True
    End Sub
    運(yùn)行上面的程序,可以看到程序在窗口中加入了三個VB標(biāo)準(zhǔn)控件:一個TextBox和兩個
CommandButton還加入了一個擴(kuò)展的ActiveX控件:樹形控件。這些控件還可以響應(yīng)消息,
點(diǎn)擊樹形控件中的項(xiàng)目或者“點(diǎn)擊”按鈕就可以在文本框中顯示相應(yīng)的內(nèi)容。點(diǎn)擊“刪除
所有控件”按鈕就可以刪除加入的所有控件了。
    通過上面的程序可以看到,通過WithEvents可以定義帶事件相應(yīng)的控件,對于標(biāo)準(zhǔn)的VB
控件(例如CommandButton、TextBox等)可以通過VB.XXX來定義,其中XXX是控件的類的名稱
,而對于擴(kuò)展的ActiveX控件,可以通過VBControlExtender來定義,在裝載擴(kuò)展控件以前,
首先要使用Licenses對象加入控件的許可證信息。
    上面的程序在VB6,WIN98中文版下運(yùn)行通過。


主站蜘蛛池模板: 亚洲三级影视 | 欧洲美女a视频一级毛片 | 午夜激情影院 | 亚欧精品在线观看 | 丝袜美女啪啪 | 日本 欧美 国产 | 青青久草| 中文字幕第一页在线播放 | 青娱乐黄色| 中文字幕永久在线视频 | 中文字幕女教师julia视频 | 伊人网免费视频 | 天天干天 | 欧日韩美香蕉在线观看 | 欧美午夜免费观看福利片 | 色噜噜 男人的天堂在线观看 | 天天射天天射天天射 | 四虎影剧院| 日韩欧美中文在线 | 五级毛片 | 欧美系列在线 | 四虎成人影院网址 | 最新精品亚洲成a人在线观看 | 亚洲高清在线观看 | 亚洲v日本| 婷婷成人丁香五月综合激情 | 天堂网在线视频 | 日韩欧美大片 | 欧美一区二区三区四区在线观看 | 青青在线视频免费看观看 | 四虎网址换成什么了2021 | 人成午夜视频 | 日韩a级毛片 | 青青草原手机在线视频 | 天天爱天天干天天操 | 四虎影院精品在线观看 | 日韩小视频在线 | 天天爱天天插 | 中文字幕11页 | 视频一区二区三区欧美日韩 | 中文字幕11页 |