我有这个方法来打开并填写checkedlistbox。
void Show_files()
{
FolderBrowserDialog FBD = new FolderBrowserDialog();
if (FBD.ShowDialog() == DialogResult.OK)
{
checkedListBox1.Items.Clear();
string[] files = Directory.GetFiles(FBD.SelectedPath);
string[] dirs = Directory.GetDirectories(FBD.SelectedPath);
foreach (string file in files)
{
checkedListBox1.Items.Add(file);
}
foreach (string dir in dirs)
{
checkedListBox1.Items.Add(dir);
}
}
}
然后按钮删除所选文件。
private void button1_Click(object sender, EventArgs e)
{
foreach (var item in checkedListBox1.CheckedItems.OfType<string>().ToList())
{
DialogResult dialogResult = MessageBox.Show("Czy na pewno chcesz usunać zaznaczone pliki", "Czy na pewno chcesz usunać zaznaczone pliki?", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
File.Delete(item);
}
}
MessageBox.Show("Usunięto");
checkedListBox1.Refresh(); // here should refresh list of folder content
}
我试图在方法Show_files()中再次清除并在循环中添加项目(如果项目计数不为null),但它没有工作。不隐藏和显示。我不想再打开文件夹浏览器。它必须自动发生。
答案 0 :(得分:0)
您没有从控件中删除该项:
if (dialogResult == DialogResult.Yes)
{
File.Delete(item);
checkedListBox1.Items.Remove(item);
}
最好把一些尝试......抓住这些操作的块。