Question

Je travaille sur une affectation et j'ai besoin d'utiliser une classe OpenFileDialog pour choisir un fichier .txt et renvoyer cette propriété de nom de fichier dans une fonction appelée getFileName ()

Maintenant, c'est le code que j'ai pour mon bouton CLIC:

    Private Sub 
    btnSelectFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelectFile.Click

End Sub

Je suis confus quant à la façon dont j'obtiens le fichier que j'ai sélectionné dans ma fonction. Ceci est le code de ma fonction.

     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

Comment puis-je obtenir mon fichier OpenDonorList .txt dans ma fonction getFileName ()?

Merci!

Était-ce utile?

La solution

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.

Autres conseils

Vous avez déjà la plupart du code, tout ce que vous avez à faire est d'utiliser FileName propriété pour retourner le fichier sélectionné:

If DialogResult = Windows.Forms.DialogResult.OK Then
    Return OpenDonorList.FileName
End If

J'ajouterais également cette ligne aux paramètres de votre fenêtre de fichier ouvert pour s'assurer qu'un seul fichier peut être sélectionné:

OpenDonorList.Multiselect = False
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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top