C# Winform列列表

C# Winform列列表,c#,winforms,listbox,multiple-columns,C#,Winforms,Listbox,Multiple Columns,我对编程非常陌生,如果这是一个非常明显的问题,我深表歉意。我在网上搜索了一下,但还没有找到一个合适的答案 我正在编写一个程序,用于解释文件流中索引中的字节。一旦它们被转换成人类可读的日期/字符串/整数等,我想使用Winform以列的形式显示结果。目前,我使用一个列表框,只需将每个条目按列分隔,但这是一种非常笨拙的方式 有人能建议我如何将结果放入使用列的显示器中吗?在您的情况下,最好使用列表视图,而不是列表框。下面的示例显示了ListView中单独列中字符串中的所有单词: 确保将以下属性设置为Li

我对编程非常陌生,如果这是一个非常明显的问题,我深表歉意。我在网上搜索了一下,但还没有找到一个合适的答案

我正在编写一个程序,用于解释文件流中索引中的字节。一旦它们被转换成人类可读的日期/字符串/整数等,我想使用Winform以列的形式显示结果。目前,我使用一个列表框,只需将每个条目按列分隔,但这是一种非常笨拙的方式


有人能建议我如何将结果放入使用列的显示器中吗?

在您的情况下,最好使用
列表视图
,而不是
列表框
。下面的示例显示了ListView中单独列中字符串中的所有单词:

确保将以下属性设置为ListView(此处名称为ColumnsListView):

此方法获取一个字符串,按空格将其拆分,并为每个值添加一列:

private void SetListView(string input)
{
    var values = input.Split(' ');
    ColumnsListView.Columns.Add("Column1");
    var item = new ListViewItem(values[0]);

    for (var i = 1; i < values.Length; i++)
    {
        ColumnsListView.Columns.Add("Column" + (i+1));
        item.SubItems.Add(new ListViewItem.ListViewSubItem { Text = values[i] });
    }

    ColumnsListView.Items.Add(item);
}
更新:

下面是一个示例,您可以使用
DataGridView

private void SetDataGridView(string input)
{
    var values = input.Split(' ');

    for (var i = 0; i < values.Length; i++)
        ColumnsDataGridView.Columns.Add("Column" + (i + 1), "Column" + (i + 1));

    ColumnsDataGridView.Rows.Add(values);
}
private void SetDataGridView(字符串输入)
{
var值=输入。拆分(“”);
对于(变量i=0;i
您希望在列中显示它,并将其显示在列中。有什么问题吗?您也可以使用ListView、DataGrid或GridView,但原理是相同的…抱歉,更正-我当前的设置是一个listbox,它只在一行字符串中显示多个字段的每个条目。我想把它们按列分开。这就是ListView的用途。(或者可能是DataGridView)谢谢。我将试一试,看看这是否适用于我的数据。不同的列是否可以容纳不同的类型,或者是否必须先转换为字符串?显示的值始终是字符串,尽管包含的项可以是任何内容。与ListBoxItem类似,它可以是
Person
类的实例,并且该人的名字显示在该项中。
private void SetListView(string input)
{
    var values = input.Split(' ');

    for (var i = 0; i < values.Length; i++)
        ColumnsListView.Columns.Add("Column" + (i + 1));

    var item = new ListViewItem(values[0]);
    item.SubItems.AddRange(values.Skip(1).ToArray());
    ColumnsListView.Items.Add(item);
}
private void SetDataGridView(string input)
{
    var values = input.Split(' ');

    for (var i = 0; i < values.Length; i++)
        ColumnsDataGridView.Columns.Add("Column" + (i + 1), "Column" + (i + 1));

    ColumnsDataGridView.Rows.Add(values);
}