限制OpenFileDialog的Multiselect

时间:2014-02-16 07:01:38

标签: vb.net winforms

我有一个OpenFileDialog,其MultiSelect属性开启。我的问题是如何限制要选择的项目数量,例如仅限5项?

由于

3 个答案:

答案 0 :(得分:4)

您可以使用FileOk事件检查用户单击“确定”按钮时选择的文件。如果您不满意,则显示一条消息并将CancelEventArgs.Cancel属性设置为True以防止对话框关闭。像这样:

    Dim dlg As New OpenFileDialog()
    dlg.Multiselect = True
    AddHandler dlg.FileOk, Sub(s, ce)
                               If dlg.FileNames.Length > 5 Then
                                   MessageBox.Show("Please select no more than 5 files")
                                   ce.Cancel = True
                               End If
                           End Sub
    If dlg.ShowDialog = Windows.Forms.DialogResult.OK Then
        '' etc...
    End If

答案 1 :(得分:1)

你做不到。但你有其他选择:

1 .- 一个好的选择可能是将所有文件名放在文本文件中,然后接受该文本文件作为程序的输入。

2 .- 您应该允许用户选择目录。然后列出所有文件并让它们选择尽可能多的文件,不会有任何问题。

3 .- 您可能需要使用FolderBrowserDialog,然后使用IO.Directory.GetFiles,它才能正常运作。

答案 2 :(得分:1)

就我所见,OpenFileDialog中没有内置功能。可能的解决方案是检查从对话框返回的FileNames。例如,如果计数超过5,则提醒用户并在不操作文件的情况下停止。