【问题标题】:How does one make a horizontal listbox in .NET如何在 .NET 中制作水平列表框
【发布时间】:2011-01-21 20:13:34
【问题描述】:

我正在将一个 VB6 应用程序移植到 .NET,并且所需的 UI 元素之一是水平列表框。我似乎无法弄清楚如何在 .NET 中复制它。

  1. 这可以用基本的winforms完成吗?

  2. 你会如何复制这个?

示例:

将复制上图的 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 中复制它,但是这个应用程序不能以这种方式完成。

【问题讨论】:

  • 在 WPF 中可以轻松完成,但在 WinForms 中您可能需要自己编写控件代码...

标签: vb.net winforms


【解决方案1】:

我建议ListViewLargIcon 用于View 属性,这可能是适合您的情况的良好且现成的解决方案。

祝你好运!

【讨论】:

    【解决方案2】:

    Winforms 也支持这一点。将 MultiColumn 属性设置为 True,将 ColumnWidth 属性设置为 15。生产:

    【讨论】:

    • @Hans Passant 你知道原因吗?
    • @Hans Passant 没办法,我看过编辑,但在 WinForms 中对我不起作用:LB.MultiColumn = True : LB.ColumnWidth = 15 : LB.Items.Add("abc") : LB.Items.Add("def")
    • 请停止向我的帖子发送垃圾邮件。点击按钮。
    • 哦,谢谢您的好意(...)如果我需要提出一个问题只是想问一下为什么(两行)假设的解决方案在我的情况下不起作用...最好不,无论如何,谢谢,我不再打扰你了。
    猜你喜欢
    • 1970-01-01
    • 2016-06-17
    • 2023-03-03
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    相关资源
    最近更新 更多