DomainUpDown 控件在外觀上都是由一個文本框和一對可以上下移動列表的箭頭組成 如下圖一所示
專注于為中小企業(yè)提供網(wǎng)站建設、成都網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)余江免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。
圖一 控件外觀
其功能類似于組合框 您可以將任何類型的數(shù)據(jù)放入列表 同時在文本框中顯示單個字符串值 讓用戶可以通過單擊上箭頭和下箭頭來瀏覽數(shù)據(jù)
在工具箱中 它的圖標顯示如下圖二所示
圖二 工具箱中的DomainUpDown 控件
DomainUpDown 控件的主要屬性為 Items ReadOnly Wrap
一 改變文字顯示與上下箭頭的方向
我們可以通過 TextAlign 屬性來改變控件中的文本對齊方式 通過 UpDownAlign 屬性改變它的上下按鈕對齊方式
示例 在DomainUpDown 控件 Text 屬性中輸入 即文本框顯示的字符 把 TextAlign 屬性 設置為Center UpDownAlign 屬性設置為Left 顯示效果如下圖三所示
圖三 改變DomainUpDown 控件顯示外觀
二 ReadOnly 屬性
ReadOnly 屬性用于設置用戶是否只能使用向上或向下按鈕更改文本 默認值為False 如果為False 則用戶可以在文本框中進行輸入 如果為True 則文本輸入框變?yōu)榛疑?用戶只能通過Up Down按鈕來選擇列表 且當用戶使用鍵盤鍵入的時候 控件自動完成匹配 如假設列表中存在下面三個字符串的項 aa b 控件ReadOnly 屬性為True 則當我們在文本框中鍵入 時候 控件將自動匹配字符串 如下圖四所示
圖四游殲 DomainUpDown 自動匹配用戶輸入
三 為DomainUpDown 控件添加\刪除列表項
通過 字符串集合編輯器 編輯
我們可以在設計視圖中為 DomainUpDown 控件添加或者刪除列表項 步驟如下
在 屬性 窗口中找到 Items 屬性 單擊屬性后的 按鈕 彈出 字符串集合編輯器 然后進行編輯 注意每行為一個項
使用代碼添加\刪除
可以使用 Items 集合的 Add 方法將項添加到項列表的末尾 使用 Insert 方法將項插入到列表中的指定位置
可以使用 Items 集合的 Remove 方法按照名稱移除項 使用 RemoveAt 方法按照項的位置移除項
示例代碼如下
在控件列表尾部添加一個神皮沖字符串 cccc
DomainUpDown Items Add( cccc )
把字符串 cccc 插入到索引位置 (提示 索引是從 開始握行)
DomainUpDown Items Insert( cccc )
刪除列表中的字符串為 cccc 的項
DomainUpDown Items Remove( cccc )
刪除列表中索引位置為 的項
DomainUpDown Items RemoveAt( )
使用Clear方法清除DomainUpDown 控件的所有項
DomainUpDown Items Clear()
四 DomainUpDown 控件的其它屬性
Sorted 屬性 指示項集合是否排序 當 Sorted 設置為 true 時 將按字母順序對集合排序 默認為False
Wrap 屬性 當 Wrap 設置為 true 時 如果達到了集合中的最后一項并繼續(xù)滾動 則列表將從第一項重新開始 看起來像是連續(xù)的
lishixinzhi/Article/program/net/201311/11362
處理數(shù)據(jù)行(DataRow)
Windows窗體中的數(shù)據(jù)綁定列表框和組合框很節(jié)省時間 典型的代碼如下(假定已枝老經(jīng)建立了SqlDataAdapter或者其猛顫升它部件獲取數(shù)據(jù))
Dim ds As New DataSet() SqlDataAdapter Fill(ds Customers ) ListBox DataSource = ds Tables( Customers ) ListBox DisplayMember = CompanyName ListBox ValueMember = CustomerID
在這種情況下 代碼使用Northwind數(shù)據(jù)庫的顧客記錄工作 DisplayMember屬性設置為你希望用戶在列表框中看到的記錄字段 它是customers表的CompanyName 通常ValueMember屬性設置為數(shù)據(jù)表中的一個鍵字段 對于customer來說是CustomerID 一旦用戶選擇了列表框中的一行 很容易使用列表框的SelectedValue屬性獲得鍵字段
MsgBox(ListBox SelectedValue)
但是有可能需要一個與被選擇項相關的整個數(shù)據(jù)行對象的引用 例如 如果被選擇的行需要被刪除 就不知道鍵了 你需要一個數(shù)據(jù)行的引用以使用Delete方法
典型的Visual Basic開發(fā)者通常這樣想 我已經(jīng)得到了該行的鍵了 我將編寫一些邏輯來查找使用該鍵的行 這樣可以實現(xiàn) 但是有更好的實現(xiàn)方法 可以使用一行代碼獲取與列表框中選項關聯(lián)的數(shù)據(jù)行
Dim dr As DataRow = CType(ListBox SelectedItem DataRowView) Row
通常該邏輯不會憑直覺出現(xiàn) 即使對經(jīng)驗豐富的開發(fā)者 為了解釋這是怎樣實現(xiàn)的 我把上面的一行拆成幾行 下面的代碼與上面代碼的功能相同
Dim drv As DataRowView drv = CType(ListBox SelectedItem DataRowView) Dim dr As DataRow dr = drv Row
DataRowView類是數(shù)據(jù)行的包裝 它被多個Windows窗體控件使用 它使得顯示與控件中的數(shù)據(jù)行相關的數(shù)據(jù)更加容易 當列表框被數(shù)據(jù)綁定到數(shù)據(jù)表時(假定列表框中的有些行當洞槐前被選定了) 列表框的SelectedItem屬性保存了一個DataRowView對象
這意味著我們能把列表框的SelectedItem屬性轉換到DataRowView對象 這就是上面代碼中的第二行實現(xiàn)的 接著DataRowView暴露一個Row屬性 它指向被包裝的數(shù)據(jù)行 上面的代碼聲明了一個數(shù)據(jù)行并設置了Row屬性
轉換對象的類型以訪問它的接口的技術在Visual Basic 中不是經(jīng)常使用 但是在Visual Basic NET中這是經(jīng)常的 有了上面的例子后 大多數(shù)有經(jīng)驗的開發(fā)者迅速跟上了這種技術
數(shù)據(jù)行的引用(dr)可用于用任何方式維護行 訪問數(shù)據(jù)行中的任何特定字段是可行的 行中的數(shù)據(jù)可以被改變 能使數(shù)據(jù)行的Delete方法把該行標識為刪除 或者從數(shù)據(jù)表的行集合中刪除該行 下面的代碼標識刪除了一行
dr Delete()
lishixinzhi/Article/program/net/201311/12974
1、用VS2012新建一個VB窗口吵御正應用程序,進入窗體設計視圖,添加一個菜單。
2、右擊需要更改為組合框的菜單拆空項,在彈出的內容選擇“轉換為”-"ComboBox"。
3、對應的菜單項便由按鈕變成了組合框。
4、運行程序可以看到剛剛添加的“串口”菜單項是以組合框的形式升悔出現(xiàn)的。
5、結束調試,回到窗體設計,右擊“串口”菜單項,選擇“屬性”。
6、關注“設計”下的Name,這個就是剛剛添加的組合框菜單項的名稱,可以通過這個名稱對該菜單項進行操作,可以看到在VS2012的VB中是可以使用漢字作為控件名稱的。
7、在窗體的Load事件中添加該組合框的初始化代碼,即添加“串口1”、“串口2”、“串口3”等。