[英]how to convert getitemdata and set itemdata from vb6 combo to vb.net combo methods
嗨,我們正在將vb6遷移到vb.net。在vb 6中,vb.net不支持組合框方法
VB6.GetItemString(cboEditBox(0), cboEditBox(0).SelectedIndex)
VB6.Format(VB6.GetItemData(cboEditBox(0), cboEditBox(0).SelectedIndex)
VB6.Format(frmTableRate.txtRate.Text, "##0.0####")
VB6.SetItemData(cboEditBox(0), cboEditBox(0).SelectedIndex
CheckUsage(sSQLWhere, VB6.Format(frmTableRate.Tag), sMsg, bUsed)
VB.Left(VB6.GetItemString(lstRates, lstRates.SelectedIndex)
sTableID = VB6.Format(VB6.GetItemData(cboEditBox(0), cboEditBox(0).SelectedIndex), "000")
這是有關VB.NET中組合框項目如何輕松存儲顯示值和數據值的簡單示例。 要嘗試,只需將此代碼粘貼到一個名為Form1的空窗體上。 它將自行創建控件並連接事件處理程序。
Public Class ComboItem
Public Property DisplayString As String
Public Property ItemData As Object
Public Sub New(DisplayString As String, Optional ItemData As Object = Nothing)
Me.DisplayString = DisplayString
Me.ItemData = ItemData
End Sub
End Class
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim cboEditBox As New ComboBox
Controls.Add(cboEditBox)
Dim comboData As New System.ComponentModel.BindingList(Of ComboItem)
cboEditBox.DataSource = comboData
cboEditBox.DisplayMember = "DisplayString"
cboEditBox.ValueMember = "ItemData"
comboData.Add(New ComboItem("One"))
' Demonstrate setting item data along with creation of the list items
comboData.Add(New ComboItem("Two", "First duplicate"))
comboData.Add(New ComboItem("Two", "Second duplicate"))
' Demonstrate SetItemData alternative
DirectCast(cboEditBox.SelectedItem, ComboItem).ItemData = "The first item"
AddHandler cboEditBox.SelectedIndexChanged, AddressOf cboEditBox_SelectedIndexChanged
End Sub
Private Sub cboEditBox_SelectedIndexChanged(sender As Object, e As EventArgs)
Dim target As ComboBox = DirectCast(sender, ComboBox)
' Demonstrate GetItemData alternative
MsgBox(target.SelectedValue)
End Sub
注意,通過使用BindingList(而不是數組或常規List),我們確保即使在初始化ComboBox之后,直接從列表中添加或刪除列表中的元素也將反映在組合框中,而無需刷新組合框的DataSource屬性。 如果要手動刷新組合框的DataSource屬性,則可以使用簡單的數組或列表代替。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.