Как сделать горизонтальный listbox in.NET

Я работаю над портированием приложения VB6 на .NET, и одним из желаемых элементов пользовательского интерфейса является горизонтальное список. Я не могу понять, как это воспроизвести .Сеть.

  1. можно ли это сделать с помощью основных winforms?

  2. Как бы вы это воспроизвели?

пример:
alt text

код VB6, который будет реплицировать вышеуказанное изображение:

Private Sub Form_Load()
    lst_horizontal(1).FontSize = 6
    Dim iMaxChoices As Integer
    iMaxChoices = 10
    For i = 1 To iMaxChoices
        lst_horizontal(1).AddItem (" " + CStr(i))
    Next i
End Sub

Private Sub lst_horizontal_Click(Index As Integer)
    Dim iMaxChoices As Integer
    iMaxChoices = 10

    For i = 0 To iMaxChoices - 1

        If lst_horizontal(1).Selected(i) Then
            Debug.Print ("Item " + CStr(i + 1) + " selected")
        End If

    Next i

слова ласки: я могу понять как реплицировать это в Silverlight / XAML, но это приложение не может быть сделано таким образом.

2 ответов


Это также поддерживается в Winforms. Задайте свойству MultiColumn значение True, свойству ColumnWidth значение, скажем, 15. Производство:

enter image description here


Я бы предложил ListView с LargIcon на View свойство, это может быть хорошее и готовое решение для вашего случая.

alt text

удачи!