如何在.NET中制作一个水平列表框

6
我正在将一个VB6应用程序移植到.NET,其中一个期望的UI元素是水平列表框。我似乎无法弄清楚如何在.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
< p >鬼话:我可以找出在Silverlight/XAML中复制这个应用的方法,但是这个应用程序无法以那种方式完成。

在WPF中可以很容易地完成,但在WinForms中,你可能需要自己编写控件代码... - Thomas Levesque
2个回答

4
我建议您使用 ListView,并将 View 属性设置为 LargIcon。这可能是您情况下的一个好且现成的解决方案。
祝您好运!
(注意:保留了 HTML 标签)

3
这在Winforms中也是支持的。将MultiColumn属性设置为True,ColumnWidth属性设置为15,即可得到如下效果:

enter image description here


@Hans Passant,你能知道为什么吗? - ElektroStudios
@Hans Passant 没门,我看过这个编辑但在 WinForms 中对我不起作用:LB.MultiColumn = True : LB.ColumnWidth = 15 : LB.Items.Add("abc") : LB.Items.Add("def") - ElektroStudios
请停止在我的帖子中发布垃圾信息。请点击“提问”按钮。 - Hans Passant
哦,谢谢你的好意……如果我需要提出一个问题,只是问为什么(两行)所谓的解决方案在我的情况下不起作用……最好还是算了,无论如何感谢你,我不会再打扰你了。 - ElektroStudios

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接