Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更新图片查看器的列表框_C# - Fatal编程技术网

C# 更新图片查看器的列表框

C# 更新图片查看器的列表框,c#,C#,我制作了图片查看器。 问题是当手动复制和粘贴目录中的多张图片时(从目录文件夹中的文件夹),列表框应该刷新并显示其中的新项目。 我想当点击刷新按钮,新的项目显示在列表框 在按钮中尝试刷新,但什么也没发生。谁都可以帮忙。 谢谢 并且不要重新读取文件夹并将新文件添加到列表框中。 相反,我建议使用加载文件列表的代码并创建一个私有函数。然后,您可以从“选择文件夹”按钮和“刷新”按钮调用该代码 private void LoadFiles() { try { var diri

我制作了图片查看器。 问题是当手动复制和粘贴目录中的多张图片时(从目录文件夹中的文件夹),列表框应该刷新并显示其中的新项目。 我想当点击刷新按钮,新的项目显示在列表框 在按钮中尝试刷新,但什么也没发生。谁都可以帮忙。 谢谢

并且不要重新读取文件夹并将新文件添加到列表框中。
相反,我建议使用加载文件列表的代码并创建一个私有函数。然后,您可以从“选择文件夹”按钮和“刷新”按钮调用该代码

private void LoadFiles()
{
    try
    {
        var dirinfo = new DirectoryInfo(currentDir);
        var files = dirinfo.GetFiles().Where(c => c.Extension.Equals(".jpg") || c.Extension.Equals(".jpeg") || c.Extension.Equals(".bmp") || c.Extension.Equals(".png"));

        // This is required to not add the same file two times
        listBoxImage.Items.Clear();
        foreach (var image in files)
        {
            listBoxImage.Items.Add(image.Name);
        }

    }
    catch (Exception ex)
    {
        MessageBox.Show("There was an Error: " + ex.Message + "" + ex.Source);
    }

}


private void button1_Click(object sender, EventArgs e)
{
    var fb = new FolderBrowserDialog();
    if (fb.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        currentDir = fb.SelectedPath;
        textBoxDirectory.Text = currentDir;
        LoadFiles();
    }
}

private void btnRefresh_Click(object sender, EventArgs e)
{
    LoadFiles();
}

不要重新读取文件夹并将新文件添加到列表框。@Steve thsnks。你有什么建议?如何在列表框中查看新项目?
private void LoadFiles()
{
    try
    {
        var dirinfo = new DirectoryInfo(currentDir);
        var files = dirinfo.GetFiles().Where(c => c.Extension.Equals(".jpg") || c.Extension.Equals(".jpeg") || c.Extension.Equals(".bmp") || c.Extension.Equals(".png"));

        // This is required to not add the same file two times
        listBoxImage.Items.Clear();
        foreach (var image in files)
        {
            listBoxImage.Items.Add(image.Name);
        }

    }
    catch (Exception ex)
    {
        MessageBox.Show("There was an Error: " + ex.Message + "" + ex.Source);
    }

}


private void button1_Click(object sender, EventArgs e)
{
    var fb = new FolderBrowserDialog();
    if (fb.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        currentDir = fb.SelectedPath;
        textBoxDirectory.Text = currentDir;
        LoadFiles();
    }
}

private void btnRefresh_Click(object sender, EventArgs e)
{
    LoadFiles();
}