OpenFileDialog - 两次选择相同的文件

时间:2013-12-02 12:04:13

标签: c# winforms listview openfiledialog

我正在开发一个Windows窗体应用程序,它使用OpenFileDialog选择文件并将其放到ListView

用户不应该将同一文件添加到listview两次。这不应该发生:

This should NOT happen!!!!

怎么办呢?

3 个答案:

答案 0 :(得分:3)

在添加新文件之前,您是否尝试检查listview是否包含该文件?

openfiledialog允许您按扩展名进行过滤,但不能按文件名进行过滤,因此您需要在关闭后处理用户选择。也许显示一个消息对话框告诉用户他们选择了副本将是处理无效选择的最佳方法。

答案 1 :(得分:0)

检查现有条目。

var txt = comboBox1.Text;

if (!listView1.Items.ContainsKey(txt))
{
    lvi.Text = txt;

    // this is the key that ContainsKey uses. you might want to use the value 
    // of the ComboBox or something else, depending the combobox is freetext 
    // or regarding your scenario.
    lvi.Name = txt;

    lvi.SubItems.Add("");
    lvi.SubItems.Add("");
    lvi.SubItems.Add("");
    lvi.SubItems.Add("");

    listView1.Items.Add(lvi);
}

How prevent duplicate items listView C#

答案 2 :(得分:0)

试试这段代码。

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
    var file = openFileDialog1.FileName;
    if (listView1.FindItemWithText(file) == null)
        listView1.Items.Add(file);
}

您还可以添加else一个消息框,通知用户选择重复文件。