为一个多列列表框设置不同的列宽
Set different columnwidth for one Multicolumn Listbox
我正在寻找一种方法来在我的多列列表框中设置不同的列宽。第一个应该是0所以它会被隐藏,第二个15,第三个85,等等
我的目标是创建一个引用产品的列表框,我的用户可以从中点击 select 此类产品,然后使用按钮对所述产品执行不同的操作
列表框从 MySQL 数据库中获取数据
你可以制作一个class来存储你的数据。您可以根据需要添加任意数量的属性以匹配数据库中的字段 table。我添加了一个自定义构造函数来简化创建新产品时的属性设置。我已经覆盖了 .ToString,因为列表框在要添加的对象上调用 .ToString。
Public Class Product
Public Property ProductName As String
Public Property Price As Decimal
Public Sub New(Name As String, ProductPrice As Decimal)
ProductName = Name
Price = ProductPrice
End Sub
Public Overrides Function ToString() As String
Return ProductName
End Function
End Class
创建一个表单级列表变量来保存您的产品数据列表。
检索数据并将每条记录存储在列表中。
Private lstProduct As New List(Of Product)
Private Sub GetData()
Using cn As New MySqlConnection("Your connection string")
Using cmd As New MySqlCommand("Select * From Products;", cn)
cn.Open()
Using dr As MySqlDataReader = cmd.ExecuteReader
While dr.Read
Dim p As New Product(dr.GetString(0), dr.GetDecimal(1))
lstProduct.Add(p)
End While
End Using
End Using
End Using
End Sub
获取数据后,您可以将列表用作 ListBox 的 .DataSource。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
GetData()
ListBox2.DataSource = lstProduct
End Sub
现在您在列表框中拥有可用的产品的所有属性。
Private Sub ListBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox2.SelectedIndexChanged
Dim p As Product = DirectCast(ListBox2.SelectedItem, Product)
Dim ProductPrice As Decimal = p.Price
Debug.Print(ProductPrice.ToString)
End Sub
我正在寻找一种方法来在我的多列列表框中设置不同的列宽。第一个应该是0所以它会被隐藏,第二个15,第三个85,等等
我的目标是创建一个引用产品的列表框,我的用户可以从中点击 select 此类产品,然后使用按钮对所述产品执行不同的操作
列表框从 MySQL 数据库中获取数据
你可以制作一个class来存储你的数据。您可以根据需要添加任意数量的属性以匹配数据库中的字段 table。我添加了一个自定义构造函数来简化创建新产品时的属性设置。我已经覆盖了 .ToString,因为列表框在要添加的对象上调用 .ToString。
Public Class Product
Public Property ProductName As String
Public Property Price As Decimal
Public Sub New(Name As String, ProductPrice As Decimal)
ProductName = Name
Price = ProductPrice
End Sub
Public Overrides Function ToString() As String
Return ProductName
End Function
End Class
创建一个表单级列表变量来保存您的产品数据列表。 检索数据并将每条记录存储在列表中。
Private lstProduct As New List(Of Product)
Private Sub GetData()
Using cn As New MySqlConnection("Your connection string")
Using cmd As New MySqlCommand("Select * From Products;", cn)
cn.Open()
Using dr As MySqlDataReader = cmd.ExecuteReader
While dr.Read
Dim p As New Product(dr.GetString(0), dr.GetDecimal(1))
lstProduct.Add(p)
End While
End Using
End Using
End Using
End Sub
获取数据后,您可以将列表用作 ListBox 的 .DataSource。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
GetData()
ListBox2.DataSource = lstProduct
End Sub
现在您在列表框中拥有可用的产品的所有属性。
Private Sub ListBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox2.SelectedIndexChanged
Dim p As Product = DirectCast(ListBox2.SelectedItem, Product)
Dim ProductPrice As Decimal = p.Price
Debug.Print(ProductPrice.ToString)
End Sub