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

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

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

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

    在VB中動態添加可響應消息的控件

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

    領測軟件測試網     在VB編程中,經常要根據不同的情況在運行時向窗口中添加或者刪除控件,而各個控件還要
    響應各種事件。在一般的情況下是首先在設計時將控件加入到窗口中,在它們的各個事件中寫入
    代碼,然后將它們的Visible屬性設置為False。在運行時再使控件顯示出來,但是這樣既不方便
    同時也因為在設計時在窗口中加入太多的控件而使得程序的運行速度變慢。下面我向大家介紹一
    種通過編程在運行時動態添加和刪除控件的方法
        首先建立一個工程文件,然后在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 = "你點擊的是控制按鈕"
        End Sub

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

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

            注釋: 在Form中動態的加入一個樹形控件,如果你想樹形控件建立到不同的
            注釋:容器中,象一個Frame控件或者PictureBox控件,你只要將Controls.Add
            注釋:函數的第三個參數改為特定的容器名就可以了
            Set ctlDynamic = Controls.Add("MSComctlLib.TreeCtrl", _
                            "myctl", Form1)
            注釋:設置樹形控件的位置和尺寸
            ctlDynamic.Move 1, 1, 2500, 3500
            注釋:在樹形控件中加入10個節點
            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)
            注釋:設置TextBox的位置和尺寸
            ctlText.Move (ctlDynamic.Left + ctlDynamic.Width + 50), _
                            1, 2500, 100
            注釋:將textBox的背景色設置為藍色并將前景色設置為白色
            ctlText.BackColor = vbBlue
            ctlText.ForeColor = vbWhite
            注釋:使TextBox可見
            ctlText.Visible = True

            注釋:加入一個CommandButton
            Set ctlCommand = Controls.Add("VB.CommandButton", _
                            "ctlCommand1", Form1)
            注釋:設置CommandButton的位置和尺寸
            ctlCommand.Move (ctlDynamic.Left + ctlDynamic.Width + 50), _
                            ctlText.Height + 50, 1500, 500
            注釋:設置CommandButton的標題
            ctlCommand.Caption = "點擊"
            注釋:使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
        運行上面的程序,可以看到程序在窗口中加入了三個VB標準控件:一個TextBox和兩個
    CommandButton還加入了一個擴展的ActiveX控件:樹形控件。這些控件還可以響應消息,
    點擊樹形控件中的項目或者“點擊”按鈕就可以在文本框中顯示相應的內容。點擊“刪除
    所有控件”按鈕就可以刪除加入的所有控件了。
        通過上面的程序可以看到,通過WithEvents可以定義帶事件相應的控件,對于標準的VB
    控件(例如CommandButton、TextBox等)可以通過VB.XXX來定義,其中XXX是控件的類的名稱
    ,而對于擴展的ActiveX控件,可以通過VBControlExtender來定義,在裝載擴展控件以前,
    首先要使用Licenses對象加入控件的許可證信息。
        上面的程序在VB6,WIN98中文版下運行通過。

    延伸閱讀

    文章來源于領測軟件測試網 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>