久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Visual Basic 6.0 的 Controls 集合在 Visual Basic 2005 中

 nxhujiee 2010-04-16

Visual Basic 6.0 的 Controls 集合在 Visual Basic 2005 中被替換為 ControlCollection 類,。

概念差異

在 Visual Basic 6.0 中,,Controls 集合是表示窗體或容器控件上的控件的元素的集合,。

在 Visual Basic 2005 中,ControlCollection 類代替了 Controls 集合,。窗體具有默認的 ControlCollection 類,,可以使用語法 Me.Controls 訪問。

Add 方法

在 Visual Basic 6.0 中,,Controls 集合的 Add 方法是后期綁定的,;通過將 Control 類指定為參數(shù),在 Add 方法中創(chuàng)建控件,。

在 Visual Basic 2005 中,,在將控件添加到集合前,ControlCollection 類的 Add 方法要求使用 New 關(guān)鍵字創(chuàng)建控件,。

Remove 方法

Visual Basic 6.0 Controls 集合的 Remove 方法只能用于使用 Add 方法添加的控件,;Visual Basic 2005 ControlCollection 類沒有此限制。

計時器和菜單控件

在 Visual Basic 6.0 中,,TimerMenu 控件是 Controls 集合的成員,。在 Visual Basic 2005 中,這些控件替換為 TimerMainMenuContextMenu 組件,;這些組件不是 ControlCollection 類的成員,。

包含的控件

Visual Basic 6.0 Controls 集合包括作為容器控件的子控件的控件(如位于 Frame 控件上的控件);而 Visual Basic 2005 ControlCollection 類不是這樣,。要循環(huán)訪問窗體上的所有控件,,則必須遞歸循環(huán)訪問每個容器控件的 Controls 類。

控件集合的代碼更改

下面的示例演示 Visual Basic 6.0 和 Visual Basic 2005 在編碼方法上的不同之處,。

添加和移除控件的代碼更改

下面的代碼說明 Visual Basic 6.0 Controls 集合和 Visual Basic 2005 ControlCollection 類之間的差異,。

  CopyCode image復(fù)制代碼
' Visual Basic 6.0
Private Sub Command1_Click()
    ' Declare a new Control variable.
    Dim c As Control
    ' Create and add the new control.
    Set c = Controls.Add("VB.TextBox", "Text1")
    ' Make the new control visible.
    c.Visible = True
    ' Set the initial text.
    c.Text = "Hello"
    ' Retrieve the text from the new TextBox.
    If Controls.Count > 1 Then
        MsgBox (Controls("Text1").Text)
    End If
    ' Remove the new control.
    Controls.Remove (Text1)
    ' The following line causes a compilation error.
    ' You cannot remove controls added at design time.
    Controls.Remove (Command1)
End Sub
Visual Basic  CopyCode image復(fù)制代碼
' Visual Basic 2005
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' Create a new TextBox control.
    Dim TextBox1 As New System.Windows.Forms.TextBox
    TextBox1.Name = "TextBox1"
    ' Add the new control to the form's Controls collection.
    Me.Controls.Add(TextBox1)
    ' No need to set Visible property.
    ' Set the initial text.
    TextBox1.Text = "Hello"
    ' Retrieve the text from the new TextBox.
    If Me.Controls.Count > 1 Then
        MsgBox(Me.Controls("TextBox1").Text)
    End If
    ' Remove the new control.
    Me.Controls.Remove(TextBox1)
    ' Remove the control added at design time.
    Me.Controls.Remove(Button1)
End Sub

循環(huán)訪問控件集合的代碼更改

下面的代碼展示的函數(shù)循環(huán)訪問窗體上的所有控件,然后清除所有 CheckBox 控件,。本示例假定 CheckBox 控件位于 GroupBoxPanel 控件上,,而不是窗體上。在 Visual Basic 2005 示例中,,由于窗體的 Controls 集合僅包括直接位于窗體上的控件,,所以該函數(shù)對具有子級的所有控件遞歸調(diào)用自身。

  CopyCode image復(fù)制代碼
' Visual Basic 6.0
Private Sub ClearChecks()
    For Each Control in Me.Controls
        If TypeOf Control Is CheckBox Then
            Control.Value = vbUnchecked
        End If
    Next
End Sub
Visual Basic  CopyCode image復(fù)制代碼
' Visual Basic 2005
Private Sub ClearChecks(ByVal Container As Control)
    Dim ctl As Control
    Dim chk As CheckBox
    For Each ctl In Container.Controls
        If TypeOf ctl Is CheckBox Then
            chk = ctl
            chk.Checked = False
        End If
        ' Recursively call this function for any container controls.
        If ctl.HasChildren Then
            ClearChecks(ctl)
        End If
    Next
End Sub

升級說明

由于 Visual Basic 6.0 和 Visual Basic 2005 Controls 集合之間的差異,,對 Add 方法的調(diào)用不進行升級,。必須添加代碼才能使用 Add 方法重新創(chuàng)建應(yīng)用程序的這一行為。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多