代码之家  ›  专栏  ›  技术社区  ›  cdn

ListView项未出现在右列中

  •  0
  • cdn  · 技术社区  · 6 年前

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

    listView listView1=new 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;
    

    2 回复  |  直到 6 年前
        1
  •  1
  •   rioV8    6 年前

    项字符串应是 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;
    
        2
  •  0
  •   Vikram Kaldoke    6 年前
    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);
    

    } 使用上面的代码它将解决您的问题。