ListView项未出现在右列中

时间:2018-07-10 10:28:29

标签: c# winforms

我试图以编程方式创建ListView,并用先前从文件确定的数据列表填充它。我正在尝试设置列标题,并使用以下代码填充数据,但结果是数据未对齐一列,如在所附图像中可以看到的那样。如何使数据对齐在正确的列中?

ListView listView1 = new ListView();

ColumnHeader logCountHeader = new ColumnHeader();
logCountHeader.Text = "#";
logCountHeader.Width = 40;[![enter image description here][1]][1]
listView1.Columns.Add(logCountHeader);

ColumnHeader logTypeHeader = new ColumnHeader();
logTypeHeader.Text = "Log Type";
logTypeHeader.Width = 150;
listView1.Columns.Add(logTypeHeader);

ColumnHeader dataHeader = new ColumnHeader();
dataHeader.Text = "Message";
dataHeader.Width = 300;
listView1.Columns.Add(dataHeader);

ColumnHeader timeHeader = new ColumnHeader();
timeHeader.Text = "Time";
timeHeader.Width = 150;
listView1.Columns.Add(timeHeader);

string log_type_name = "";
string log_data = "";
string log_date = "";
string log_number = "";

for (int i = (_debug_entries-1); i >= 0; i--)
{
    log_number = i.ToString();
    log_type_name = _log_type[i].ToString();
    log_data = _log_data[i];
    log_date = _log_timestamp[i].ToString();

    ListViewItem listviewitem = new ListViewItem();
    listviewitem.SubItems.Add(log_number);
    listviewitem.SubItems.Add(log_type_name);
    listviewitem.SubItems.Add(log_data);
    listviewitem.SubItems.Add(log_date);

    listView1.Items.Add(listviewitem);
}

return listView1;

enter image description here

2 个答案:

答案 0 :(得分:1)

项目字符串应该是ListView构造函数的一部分,而不是子项目。

ListViewItem listviewitem = new ListViewItem(log_number);
listviewitem.SubItems.Add(log_type_name);
listviewitem.SubItems.Add(log_data);
listviewitem.SubItems.Add(log_date);

listView1.Items.Add(listviewitem);

您需要设置ListView.View才能看到子项

ListView listView1 = new ListView();
listView1.View = View.Details;

答案 1 :(得分:0)

for (int i =0; i <= _debug_entries-1; i++){
log_number = i.ToString();
log_type_name = _log_type[i].ToString();
log_data = _log_data[i];
log_date = _log_timestamp[i].ToString();

ListViewItem listviewitem = new ListViewItem();
listviewitem.SubItems.Add(log_number);
listviewitem.SubItems.Add(log_type_name);
listviewitem.SubItems.Add(log_data);
listviewitem.SubItems.Add(log_date);
listView1.Items.Add(listviewitem);

} 使用上面的代码可以解决您的问题。