Il me semble que vous ne savez pas comment appeler la fonction à partir du bouton cliquer (je pourrais me tromper). Donc, d'abord, lorsque vous appelez une fonction, il doit toujours renvoyer une valeur (à partir du mot clé de retour).
Vous avez configuré une fonction qui affiche un OpenFileDialog - alors quelle valeur doit-elle renvoyer? Il doit renvoyer un chemin et un nom de fichier. Cela peut simplement être stocké dans une chaîne varaible.
Donc, un peu de peaufinage à votre code pourrait le réparer.
Voici un exemple:
Sur votre code de bouton, vous souhaitez appeler la fonction réelle plus une variable pour stocker le nom du chemin (comme ci-dessus une chaîne) simplement:
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
Maintenant, dans la fonction, vous souhaitez ajouter le retour. Il y a un problème avec votre statement (pas de fin si). Si le résultat est ok, renvoyez le nom du chemin. Sinon, renvoyez NULL et appelez une erreur (vous pouvez modifier ceci):
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
Dans le code de bouton, vous pouvez ensuite appeler une autre routine qui utilise la valeur de ThePathName pour faire quelque chose, comme ouvrir le fichier pour la lecture. Dans l'exemple ci-dessus, il affichera simplement une boîte de message avec le nom de chemin du fichier sélectionné.
J'espère que cela t'aides.