我正在进行一项任务,我需要使用OpenFileDialog类来选择.txt文件并将该文件名属性返回给名为GetFileName()的函数
现在这是我按下按钮的代码:
Private Sub
btnSelectFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelectFile.Click
End Sub
我对如何将我选择的文件添加到我的函数中感到困惑。这是我的功能代码。
Private Function GetFileName() As String
Dim OpenDonorList As New OpenFileDialog
OpenDonorList.Filter = "txt files (*.txt)|*.txt"
OpenDonorList.Title = "Save File As"
OpenDonorList.InitialDirectory = "C:\"
OpenDonorList.RestoreDirectory = True
DialogResult = OpenDonorList.ShowDialog
If DialogResult = Windows.Forms.DialogResult.OK Then
Return ?
End Function
如何将OpenDonorList .txt文件存入我的GetFileName()函数?
谢谢!
答案 0 :(得分:1)
您已拥有大部分代码,您只需使用FileName
属性返回所选文件:
If DialogResult = Windows.Forms.DialogResult.OK Then
Return OpenDonorList.FileName
End If
我还要将此行添加到打开文件窗口的设置中,以确保只能选择一个文件:
OpenDonorList.Multiselect = False
答案 1 :(得分:1)
在我看来,你不确定如何从按钮点击调用该功能(我可能是错的)。因此,首先在调用函数时,它必须始终返回一个值(来自return关键字)。
您已经设置了一个显示OpenFileDialog的函数 - 那么它应返回什么值? 它应该返回一条路径&文件名。这可以存储在一个可变的字符串中。
因此,对代码进行一些调整可能会解决问题。
以下是一个例子:
在你的按钮代码上,你想调用实际函数加上一个变量来存储路径名(如上面一个字符串) 简单地:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim thePathName As String = GetFileName()
MessageBox.Show(thePathName)
End Sub
现在,在要添加返回的函数中。你的if语句有问题(如果没有结束)。如果结果正常,则返回路径名称。否则返回null并调用错误(你可以改变它):
Private Function GetFileName() As String
Dim OpenDonorList As New OpenFileDialog
OpenDonorList.Filter = "txt files (*.txt)|*.txt"
OpenDonorList.Title = "Save File As"
OpenDonorList.InitialDirectory = "C:\"
OpenDonorList.RestoreDirectory = True
DialogResult = OpenDonorList.ShowDialog
If DialogResult = Windows.Forms.DialogResult.OK Then
Return OpenDonorList.FileName
Else
MessageBox.Show("Error!")
Return vbNull
End If
End Function
在按钮代码中,您可以调用另一个使用thePathName值的例程来执行某些操作,例如打开文件进行读取。在上面的示例中,它将只显示一个消息框,其中包含所选文件的路径名。
希望这有帮助。
答案 2 :(得分:1)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim fileName As String = GetFileName()
If (String.IsNullOrEmpty(fileName)) Then
MessageBox.Show("No file was selected.")
Else
MessageBox.Show(String.Format("You selected file: {0}", fileName))
End If
End Sub
Private Function GetFileName() As String
Dim openDonorList As New OpenFileDialog()
With openDonorList
.Filter = "txt files (*.txt)|*.txt"
.Title = "Save File As"
.InitialDirectory = "C:\"
.RestoreDirectory = True
End With
Dim result As DialogResult = openDonorList.ShowDialog()
If result = Windows.Forms.DialogResult.OK Then Return openDonorList.FileName
Return Nothing
End Function