7

如何在列表框中显示两列?

4

9 回答 9

6

列表框不是为显示多列数据而设计的。即使是 Windows 窗体版本也不直接支持这种数据显示。

您的要求尚不清楚,但最简单的方法是使用GridView控件。它为您提供了很多开箱即用的功能,您可以非常轻松地将其扩展到更多列。如果您需要对外观或功能进行更多控制,则可以改用DataList

要获得滚动功能,您可以使用滚动<div>或简单地使用 GridView 的分页机制(如果合适的话)。

于 2010-04-15T19:21:34.467 回答
4

您可以将其排列为好像数据在 2 列中

new ListItem("blah1".PadRight(10, ' ') + "blah2");

如此处所示:http: //articles.dotheweb.net/post/Formatting-columns-in-a-ListBox-of-ComboBox.aspx

此外,您可以使用 DataList 自行开发。

于 2010-04-15T15:31:33.033 回答
2

如果要在 ListBox 中使用列,则必须基于对齐方式。

例如:

String columns = "{0, -55}{1, -35}{2, -35}";
ListBox1.Items.Add(String.Format(columns, "Filename", "Selected DateModified", "Vault DateModified"));
ListBox1.Items.Add(String.Format(columns, fileName, datetime1, datetime2));  

我自己的代码实现的输出如下:

在此处输入图像描述

请记住,您使用的字体必须是等宽字体,否则对齐会由于字符之间的可变间距而混乱(这会夸大字符串的长度)。

于 2019-01-04T16:53:28.773 回答
1

看起来您应该编写自己的控件,或者您可以使用 listview 控件。

于 2010-04-15T15:14:00.383 回答
1

使用列表视图它是多列列表框的完美替代品

于 2012-05-15T17:54:40.793 回答
0

正如 Nick Craver 已经评论的那样,ListView 可能不是多列信息的正确控件。

与其让您的列表看起来好像有两列,不如使用DataGridView可能是一个更好的主意。它会更容易设置、格式化,并且您的数据将以更灵活的方式保存。

DataGridViews 还支持将对象列表分配为数据源,如果这会使事情变得更容易的话。

于 2010-04-15T19:14:05.010 回答
0

如果我理解正确,您希望数据列水平显示。这可以通过使用 a来实现,DataList并将RepeatDirection指定的重复列设置为“水平”。例如:

<asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal" RepeatColumns="5" CellSpacing="10" >
于 2012-03-15T14:50:57.850 回答
0

如果您引用工具包并添加 wrapPanelOrientation ,则可以并排多个项目;)它将列出如下

1stItem      2ndItem

3rdItem      4thItem .. ect..

ListBox.ItemsPanel>

ItemsPanelTemplate>
    toolkit:WrapPanelOrientation="Horizontal"FlowDirection="LeftToRight"ItemWidth="220"ItemHeight="60"/>

/ItemsPanelTemplate>

/ListBox.ItemsPanel>

/ListBox>
于 2013-08-30T17:57:08.557 回答
-1

请参阅ASP.NET 的多列下拉框

于 2010-04-15T15:16:49.753 回答