【问题标题】:How to create a listbox having index numbers followed with list item如何创建一个带有索引号的列表框,后跟列表项
【发布时间】:2013-01-11 17:51:36
【问题描述】:

在 Winforms 中,我想显示一个列表框,其项目索引号和项目与下面的 完全相同。我浏览了许多 SO 链接和许多文章,其中大多数都使用 ListView 而不是 ListBox 并且也不是显示 List Item 索引,而是在其中显示 Image+ Item。我对列表视图没问题,但我的目标是显示项目及其相应的索引,并且在选择时它应该只给我项目。任何人都可以为我提供任何链接或想法来使用 C# 在 Winform 中实现这一点。

提前致谢。

【问题讨论】:

    标签: c# winforms listview listbox


    【解决方案1】:

    我认为对您来说最好的选择是使用带有两列的DataGridView

    • DataGridViewButtonColumn, AutoSizeMode = AllCells
    • DataGridViewTextBoxColumn,ReadOnly = true,AutoSizeMode = Fill

    还将RowHeadersVisibleColumnHeadersVisible 设置为false。结果:

    代码:

    string[] members = { "Beverages", "Condiments", "Confections" };
    dataGridView1.DataSource = members.Select((x, i) => new { Value = x, Index = i })
                                      .ToList();
    

    您还需要将列 DataPropertyName 设置为索引和值。

    更新(适用于 .NET 2.0):

    string[] members = { "Beverages", "Condiments", "Confections" };
    dataGridView1.AutoGenerateColumns = false;
    dataGridView1.DataSource = members;
    

    订阅 CellFormatting 事件:

    void dataGridView1_CellFormatting(object sender, 
                                      DataGridViewCellFormattingEventArgs e)
    {
        if (e.ColumnIndex == 0)
        {
            e.Value = e.RowIndex;
            return;
        }
    
        e.Value = dataGridView1.Rows[e.RowIndex].DataBoundItem;
    }
    

    【讨论】:

    • 能否分享一些链接或详细说明。
    • @Turtleneck 我添加了一张您将使用 DataGridView 获得的结果图像。
    • 请分享运行示例,我无法实现目标,因为我的代码使用的是 .net 框架 2.0 版,我也无法升级它。
    【解决方案2】:

    我认为您应该考虑将列表框上的 DrawMode 属性设置为 DrawMode.Manual 并处理代码中项目的绘制。

    看看http://msdn.microsoft.com/en-us/library/system.windows.forms.drawmode.aspx

    【讨论】:

      【解决方案3】:

      您可以自定义您的列表框

      以下链接将引导您正确的方向。

      http://www.codeproject.com/Articles/15464/Extending-the-ListBox-to-show-more-complex-items

      【讨论】:

        猜你喜欢
        • 2021-10-22
        • 2020-09-24
        • 1970-01-01
        • 2015-02-10
        • 1970-01-01
        • 2020-11-30
        • 2020-02-16
        • 2022-12-08
        • 2012-07-09
        相关资源
        最近更新 更多