Checkedlistbox刷新无法正常工作

时间:2014-11-18 15:48:32

标签: c# winforms checkedlistbox

我有这个方法来打开并填写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),但它没有工作。不隐藏和显示。我不想再打开文件夹浏览器。它必须自动发生。

1 个答案:

答案 0 :(得分:0)

您没有从控件中删除该项:

if (dialogResult == DialogResult.Yes)
{
  File.Delete(item);
  checkedListBox1.Items.Remove(item);
}

最好把一些尝试......抓住这些操作的块。