<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 進階控件 > 原文: [http://zetcode.com/gui/vbwinforms/advanced/](http://zetcode.com/gui/vbwinforms/advanced/) 在 Visual Basic Winforms 教程的這一部分中,我們介紹一些更高級的控件。 即`ListBox`,`ListView`和`TreeView`控件。 ## `ListBox` `ListBox`控件用于顯示項目列表。 用戶可以通過單擊選擇一個或多個項目。 ```vb ' ZetCode Mono Visual Basic Winforms tutorial ' ' This program shows how to use ' the ListBox control. Item selected from ' the ListBox is shown in the statusbar. ' ' author jan bodnar ' last modified May 2009 ' website www.zetcode.com Imports System.Windows.Forms Imports System.Drawing Public Class WinVBApp Inherits Form Private sb As StatusBar Public Sub New Me.Text = "ListBox" Me.Size = New Size(210, 210) Me.InitUI Me.CenterToScreen End Sub Private Sub InitUI Dim lb As New ListBox lb.Parent = Me lb.Items.Add("Jessica") lb.Items.Add("Rachel") lb.Items.Add("Angelina") lb.Items.Add("Amy") lb.Items.Add("Jennifer") lb.Items.Add("Scarlett") lb.Dock = DockStyle.Fill sb = New StatusBar sb.Parent = Me AddHandler lb.SelectedIndexChanged, AddressOf Me.OnChanged End Sub Private Sub OnChanged(ByVal sender As Object, ByVal e As EventArgs) sb.Text = sender.SelectedItem End Sub Public Shared Sub Main Application.Run(New WinVBApp) End Sub End Class ``` 我們的示例顯示了一個具有六個名稱的列表框。 所選項目顯示在狀態欄中。 ```vb Dim lb As New ListBox lb.Parent = Me ``` `ListBox`控件已創建。 ```vb lb.Items.Add("Jessica") ``` 這就是我們向`ListBox`控件添加新項目的方式。 該控件具有`Items`屬性。 該屬性是對列表框中項目列表的引用。 使用此引用,我們可以添加,刪除或獲取列表框中的項目數。 ```vb AddHandler lb.SelectedIndexChanged, AddressOf Me.OnChanged ``` 當我們選擇一個項目時,會觸發`SelectedIndexChanged`事件。 ```vb sb.Text = sender.SelectedItem ``` 在`OnChanged`方法內部,我們將所選文本設置為狀態欄。 ![ListBox](https://img.kancloud.cn/55/bc/55bca011870a5159aff88e34b95ce866_210x211.jpg) 圖:`ListBox` ## `ListView` `ListView`控件用于顯示項目集合。 它是比`ListBox`控件更復雜的控件。 它可以在各種視圖中顯示數據,主要用于在多列視圖中顯示數據。 ```vb ' ZetCode Mono Visual Basic Winforms tutorial ' ' This program shows how to use ' the ListView control. Item selected from ' the ListView is shown in the statusbar. ' ' author jan bodnar ' last modified May 2009 ' website www.zetcode.com Imports System.Windows.Forms Imports System.Drawing Imports System.Collections.Generic Public Class Actress Public Dim m_name As String Public Dim m_year As Integer Public Sub New(ByVal name As String, ByVal year As Integer) Me.m_name = name Me.m_year = year End Sub End Class Public Class WinVBApp Inherits Form Private Dim sb As StatusBar Private Dim lv As ListView Public Sub New Me.Text = "ListView" Me.Size = New Size(350, 300) Me.InitUI Me.CenterToScreen End Sub Private Sub InitUI Dim actresses As New List(Of Actress) actresses.Add(New Actress("Jessica Alba", 1981)) actresses.Add(New Actress("Angelina Jolie", 1975)) actresses.Add(New Actress("Natalie Portman", 1981)) actresses.Add(New Actress("Rachel Weiss", 1971)) actresses.Add(New Actress("Scarlett Johansson", 1984)) Dim name As New ColumnHeader name.Text = "Name" name.Width = -1 Dim year As New ColumnHeader year.Text = "Year" Me.SuspendLayout lv = New ListView lv.Parent = Me lv.FullRowSelect = True lv.GridLines = True lv.AllowColumnReorder = True lv.Sorting = SortOrder.Ascending lv.Columns.AddRange(New ColumnHeader() {name, year}) For Each act As Actress In actresses Dim item As New ListViewItem item.Text = act.m_name item.SubItems.Add(act.m_year.ToString()) lv.Items.Add(item) Next lv.Dock = DockStyle.Fill sb = New StatusBar sb.Parent = Me lv.View = View.Details Me.ResumeLayout AddHandler lv.Click, AddressOf Me.OnChanged AddHandler lv.ColumnClick, AddressOf Me.OnColumnClick End Sub Private Sub OnChanged(ByVal sender As Object, ByVal e As EventArgs) Dim name As String = lv.SelectedItems(0).SubItems(0).Text Dim born As String = lv.SelectedItems(0).SubItems(1).Text sb.Text = name & ", " & born End Sub Private Sub OnColumnClick(ByVal sender As Object, _ ByVal e As ColumnClickEventArgs) If sender.Sorting = SortOrder.Ascending sender.Sorting = SortOrder.Descending Else sender.Sorting = SortOrder.Ascending End If End Sub Public Shared Sub Main Application.Run(New WinVBApp) End Sub End Class ``` 在我們的示例中,我們有一個包含兩列的列表視圖。 在第一列中,我們顯示女演員的名字。 在第二個他們的出生日期。 數據存儲在`List`集合中。 通過選擇一行,一行中的數據將顯示在狀態欄中。 另外,通過單擊列標題,可以對數據進行排序。 ```vb Public Class Actress ... End Class ``` 我們使用`Actress`類存儲數據。 ```vb Dim actresses As New List(Of Actress) actresses.Add(New Actress("Jessica Alba", 1981)) actresses.Add(New Actress("Angelina Jolie", 1975)) ... ``` 我們創建項目并在項目中填充項目。 ```vb Dim name As New ColumnHeader name.Text = "Name" name.Width = -1 ``` 對于列表視圖中的每一列,我們創建一個`ColumnHeader`。 通過將`Width`設置為 -1,列的寬度等于列中最長的項目。 ```vb lv = New ListView lv.Parent = Me ``` 創建一個`ListView`控件。 ```vb lv.FullRowSelect = True lv.GridLines = True lv.AllowColumnReorder = True lv.Sorting = SortOrder.Ascending ``` 在這里,我們設置控件的四個屬性。 該代碼行支持全行選擇,顯示網格線,通過拖動列對列進行重新排序并以升序對數據進行排序。 ```vb lv.Columns.AddRange(New ColumnHeader() {name, year}) ``` 在這里,我們將兩個`ColumnHeader`添加到`ListView`控件中。 ```vb For Each act As Actress In actresses Dim item As New ListViewItem item.Text = act.m_name item.SubItems.Add(act.m_year.ToString()) lv.Items.Add(item) Next ``` 此循環填充`listview`控件。 每行都作為`ListViewItem`類添加到列表視圖。 ```vb lv.View = View.Details ``` `ListView`控件可以具有不同的視圖。 不同的視圖以不同的方式顯示數據。 ```vb Dim name As String = lv.SelectedItems(0).SubItems(0).Text Dim born As String = lv.SelectedItems(0).SubItems(1).Text sb.Text = name & ", " & born ``` 在`OnChanged`方法內部,我們從選定的行中獲取數據并將其顯示在狀態欄上。 ```vb If sender.Sorting = SortOrder.Ascending sender.Sorting = SortOrder.Descending Else sender.Sorting = SortOrder.Ascending End If ``` 在這里,我們切換列的排序順序。 ![ListView](https://img.kancloud.cn/b0/33/b033151fd368b73f65471dd96efaecea_350x301.jpg) 圖:`ListView` ## `TreeView` `TreeView`控件顯示項目的分層集合。 此控件中的每個項目都由`TreeNode`對象表示。 ```vb ' ZetCode Mono Visual Basic Winforms tutorial ' ' This program shows how to use ' the ListBox control. Item selected from ' the ListBox is shown in the statusbar. ' ' author jan bodnar ' last modified May 2009 ' website www.zetcode.com Imports System.Windows.Forms Imports System.Drawing Public Class WinVBApp Inherits Form Private Dim sb As StatusBar Private Dim WithEvents tv As TreeView Public Sub New Me.Text = "TreeView" Me.Size = New Size(250, 250) Me.InitUI Me.CenterToScreen End Sub Private Sub InitUI tv = New TreeView Dim root As New TreeNode root.Text = "Languages" Dim child1 As New TreeNode child1.Text = "Python" Dim child2 As New TreeNode child2.Text = "Ruby" Dim child3 As New TreeNode child3.Text = "Java" root.Nodes.AddRange(New TreeNode() {child1, child2, child3}) tv.Parent = Me tv.Nodes.Add(root) tv.Dock = DockStyle.Fill sb = New StatusBar sb.Parent = Me End Sub Private Sub OnSelected(ByVal sender As Object, _ ByVal e As TreeViewEventArgs) Handles tv.AfterSelect sb.Text = e.Node.Text End Sub Public Shared Sub Main Application.Run(New WinVBApp) End Sub End Class ``` 這是`TreeView`控件的非常簡單的演示。 我們有一個根項目和三個子項。 ```vb tv = New TreeView ``` 我們創建`TreeView`控件。 ```vb Dim root As New TreeNode root.Text = "Languages" ... tv.Nodes.Add(root) ``` 在這里,我們創建一個根節點。 ```vb Dim child1 As New TreeNode child1.Text = "Python" ``` 子節點以類似的方式創建。 ```vb root.Nodes.AddRange(New TreeNode() {child1, child2, child3}) ``` 子節點插入到根節點的`Nodes`屬性中。 ```vb Private Sub OnSelected(ByVal sender As Object, _ ByVal e As TreeViewEventArgs) Handles tv.AfterSelect sb.Text = e.Node.Text End Sub ``` 處理事件的另一種方法是使用`Handles`關鍵字。 ![TreeView](https://img.kancloud.cn/69/99/69995aa4c27e85ae51fb958b911d2ee6_250x251.jpg) 圖:`TreeView` 在 Visual Basic Winforms 教程的這一部分中,我們介紹了 Winforms 庫中提供的三個高級控件。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看