0

我有以下代码:

 Imports System.IO

Public Class Form2
Dim fileName As String = "C:\Users\Sam\Desktop\Visual Basic\Test\test.txt"
Dim pathname As String = "C:\Users\Sam\Desktop\Visual Basic\Test\test.txt"
Dim result As String

Private Sub btnBrowse_Click(sender As Object, e As EventArgs) Handles btnBrowse.Click
    fdTxtFile.InitialDirectory = "C:\Users\Sam\Desktop\Visual Basic\Test"

    fdTxtFile.ShowDialog()
    ' fdTxtFile.
End Sub


Private Sub fdTxtFile_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles fdTxtFile.FileOk
    Dim strm As System.IO.Stream
    result = Path.GetFullPath(fdTxtFile.ToString)
    tbFileLocation.Text = result
    strm = fdTxtFile.OpenFile()

    ' tbFileLocation.Text = 
End Sub
End Class

但是,当使用 Path.GetFullPath() 时,它会打开文件对话框,我选择文件,然后 ok 按钮什么也不做,没有错误。我正在尝试获取它,以便它将所选文件的完整文件路径显示到文本框,但是这让我很烦。其他函数,如 GetFileName() 等,点击 OK 后没有任何作用。

4

2 回答 2

1

不需要使用FileOk事件,您可以简单地等待ShowDialog()调用返回并读取存储在FileName属性中的值。如果用户按下 OK 按钮,ShowDialog 返回一个等于DialogResult.OK枚举值的值,您可以从那里开始工作。OpenFileDialog 的 FileName 属性也包含完整的文件名,因此不需要使用 GetFullPath。

Private Sub btnBrowse_Click(sender As Object, e As EventArgs) Handles btnBrowse.Click
    fdTxtFile.InitialDirectory = "C:\Users\Sam\Desktop\Visual Basic\Test"

    If DialogResult.OK = fdTxtFile.ShowDialog() Then

        Dim strm As System.IO.Stream
        result = fdTxtFile.FileName
        tbFileLocation.Text = result
        ....
    End If
End Sub

作为旁注,您使用 GetFullPath 的方式似乎是错误的。GetFullPath 需要部分文件名,将 OpenFileDialog 转换为字符串不会产生文件名

于 2013-09-23T22:25:53.597 回答
0

如果是FileOkevent,请使用该属性FileName 访问选定的文件。如果您已设置MultiselectTrue,请FileNames改用。

文件名包括文件路径和扩展名。如果未选择任何文件,则此方法返回一个空字符串 ("")。

于 2013-09-23T22:25:18.453 回答