Мне кажется, что вы не уверены, как вызвать функцию из кнопки нажатия (я могу ошибаться). Поэтому сначала, когда вы вызовуте функцию, она всегда должна возвращать значение (из ключевого слова возврата).
Вы настроили функцию, которая отображает 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
Теперь в функции вы хотите добавить возврат. Существует проблема с вашим промежуточным (без конца, если). Если результат в порядке, верните имя пути. В противном случае верните 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, чтобы что -то сделать, например, открыть файл для чтения. В приведенном выше примере он просто покажет Bessagebox с именем пути в выбранном файле.
Надеюсь это поможет.