无法将项目添加到ListView C#

时间:2017-11-24 13:01:02

标签: c# winforms listview

你好我在C#中有这个代码来获取文件并在<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> <div id="container"></div>中列出它们但没有任何反应

ListView

我甚至尝试使用单行代码插入另一个代码

string[] files = Directory.GetFiles("plugins/");
foreach (string file in files)
{
    string fileName = Path.GetFileNameWithoutExtension(file);
    ListViewItem item = new ListViewItem(fileName);
    item.Tag = file;
    listView1.Items.Clear();
    listView1.Items.Add(item);

}

但它不会添加该项目 谢谢

3 个答案:

答案 0 :(得分:1)

ListViewItem.Tag是您设置的唯一属性,该属性在UI中不可见。试试这个:

string[] files = Directory.GetFiles("plugins/");
            foreach (string file in files)
            {

                string fileName = Path.GetFileNameWithoutExtension(file);
                ListViewItem item = new ListViewItem(fileName);
                item.Text= file;
                listView1.Items.Add(item);

            }

答案 1 :(得分:0)

foreach循环中的此代码:

listView1.Items.Clear();
每次执行foreach语句时,

总是清除列表视图,在执行foreach语句后,在视图中只添加了1个项目。

我建议删除它。如果你需要清除它,创建一个清除列表并在某处调用方法的方法,但不一定要在foreach语句中。

列表视图的实例化不得位于foreach循环中。您可以在方法级别或类级别实例化它,以便清除列表中项目的单独方法将能够引用它。

class Program
{
    static ListView listView1 = new ListView();
    static void Main(string[] args)
    {
        string[] files = Directory.GetFiles("C:\\testfiles");

        foreach (string file in files)
        {

            string fileName = Path.GetFileNameWithoutExtension(file);
            ListViewItem item = new ListViewItem(fileName);
            item.Tag = file;
            listView1.Items.Add(item);

        }
    }

    static void ClearList()
    {
        listView1.Items.Clear();
    }
}

enter image description here

enter image description here

答案 2 :(得分:0)

尝试以下代码

        string[] files = Directory.GetFiles("plugins/");
        string fileName = "";
        foreach (string file in files)
        {
            fileName = Path.GetFileNameWithoutExtension(file)
            var item = new ListViewItem();
            item.Tag = file;
            item.Text = fileName;
            listView1.Items.Add(item);
        }