【问题标题】:Trouble Displaying Selected Multiple Files with OpenFileDialog使用 OpenFileDialog 显示选定的多个文件时出现问题
【发布时间】:2013-08-04 20:45:42
【问题描述】:

我在使用 OpenFileDialog 类显示多个文件名时遇到问题。 我已经选择了Multiselect设置为true,在DialogBox中可以选择多个文件,但是TextBox1区域只打印1个文件。

这是我的代码:

Public Class Form2
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    OpenFileDialog1.ShowDialog()
End Sub

Private Sub OpenFileDialog1_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
    ' Dialog Result
    Dim FilesSelected As DialogResult
    ' Are Files Selected?
    If (FilesSelected = System.Windows.Forms.DialogResult.OK) Then
        ' If Files Identify Array
        Dim file() As String
        file = OpenFileDialog1.FileNames
        For Each file In OpenFileDialog1.FileNames
            TextBox1.Text = (CurDir() & "")
        Next
    End If

End Sub
End Class

【问题讨论】:

    标签: vb.net openfiledialog


    【解决方案1】:

    首先,确保将 TextBox 的 MultiLine 属性设置为 true,并将其大小调整为可接受的高度。还将 ScrollBars 属性设置为 Vertical

    那么你的代码可以这样写(没有显式循环)

    Dim txt = string.Join(Environment.NewLine, OpenFileDialog1.FileNames)
    TextBox1.Text = txt
    

    【讨论】:

    • 文本未显示在文本框中。是否应该取出if对话框结果语句?
    • 这完全是由我取出条件 if then 语句来完成的。我不知道为什么或如何开始走这条路,但谢谢你。 :) 我本来打算再花 2 个小时阅读数组上的 msdn 可视化参考文件
    • 理解数组并不是世界上最糟糕的事情;)
    • 我很高兴能提供帮助。但正如@Jeff 所说,阅读 vb.net 中的数组(或更一般地在 NET 世界中)。另外,如果此答案有帮助,请记住将其接受/支持为explained here
    【解决方案2】:

    您每次在 foreach 循环中都会覆盖 Text。

    【讨论】:

    • 我已将当前代码更改为: Dim file() As String file = OpenFileDialog1.FileNames TextBox1.Text = file End If End Sub End Class 但我仍然收到以下错误:Value of type 'string' 不能转换为 System.Array 的一维数组。
    • 我不是 VB 人,但我会像史蒂夫的回答一样加入。您需要以某种方式将各个文件名聚合成一个字符串。
    猜你喜欢
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多