【问题标题】:Subitems in Listview not showing列表视图中的子项未显示
【发布时间】:2012-12-14 08:14:42
【问题描述】:

我创建了一个程序,您可以在其中使用按钮将文本放入富文本框中。单击按钮时,此文本框中的文本将放入列表视图中,每行都有一个复选框。此列表视图只有 1 列。

现在,我想将一些行作为子项放入并从父项中删除复选框,就像一棵树一样。但是,我现在只看到父母,子项目没有显示。我也不知道如何从父母那里删除复选框。

我看到了 treeview 类,但我不希望在每行之前的那些点,我不知道你是否可以在那里添加复选框。

这是我的代码

    private void ParseButton_Clicked(object sender, EventArgs e)
    {
       string[] entries = rawLogBox.Text.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);

       ListViewItem parent = null;
       foreach (string entry in entries)
       {
           if (Regex.IsMatch(entry, "^={10} .* ={10}$"))
           {
               parent = new ListViewItem(entry);
               parsedLogBox.Items.Add(parent);
           }
           else
           {
               if (parent == null)
               {
                   parsedLogBox.Items.Add(new ListViewItem(entry));
               }
               else
               {
                   new ListViewItem.ListViewSubItem(parent, entry);
               }
           }                 
       }
       parsedLogBox.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
    }

列表视图设置为详细信息。

【问题讨论】:

    标签: c# listview


    【解决方案1】:

    您必须像这样添加子项:

    parent.SubItems.Add(entry)
    

    另见this so question

    编辑:用于控制树视图中的复选框:TreeView Remove CheckBox by some Nodes

    【讨论】:

    • 相同的结果,我认为这是因为它将它们添加到同一行的不同列中。但我只有 1 列,我希望它们每行 1 个条目。我还希望父母能够像树一样扩展和最小化。
    • 子项将始终出现在下一列中。也许你可以稍微加强你的问题。使用标准列表视图无法展开和最小化。但是,您可以在树视图中有复选框,请参阅我对答案的编辑。
    • 我使用的是treeview atm,它更好,但并不完美。我会根据需要更改布局。我接受您的回答,因为我不需要更多帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    相关资源
    最近更新 更多