Установить разную ширину столбца для одного списка из нескольких столбцов - PullRequest
0 голосов
/ 10 января 2019

Я ищу способ установить разную ширину столбца в моем списке из нескольких столбцов. Первый должен быть 0, чтобы он был скрыт, второй 15, третий 85 и т. Д.

Моя цель - создать список со ссылками на продукты, откуда мой пользователь мог бы щелкнуть, чтобы выбрать такой продукт, а затем выполнить различные действия над этим продуктом, используя кнопки

Список получает свои данные из базы данных MySQL

1 Ответ

0 голосов
/ 10 января 2019

Вы можете создать класс для хранения ваших данных. Вы можете добавить столько свойств, сколько вам нужно, чтобы соответствовать полям в таблице базы данных. Я добавил пользовательский конструктор, чтобы упростить настройку свойств при создании нового продукта. Я переопределил .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.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    GetData()
    ListBox2.DataSource = lstProduct
End Sub

Теперь у вас есть все свойства продукта, доступные в ListBox.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...