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();
}