문제

과제를 진행 중이며 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 () 함수로 가져 오는 방법은 무엇입니까?

감사!

도움이 되었습니까?

해결책

버튼 클릭에서 함수를 호출하는 방법에 대해 확신이없는 것 같습니다 (잘못되었을 수도 있습니다). 따라서 먼저 함수를 호출 할 때 항상 값을 반환해야합니다 (리턴 키워드에서).

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

버튼 코드에서 Pathname의 값을 사용하여 읽기를 위해 파일 열기와 같은 작업을 수행하는 다른 루틴을 호출 할 수 있습니다. 위의 예에서는 선택한 파일의 경로 이름이있는 MessageBox 만 표시됩니다.

도움이 되었기를 바랍니다.

다른 팁

당신은 이미 대부분의 코드를 가지고 있습니다. 당신이해야 할 일은 사용하는 것입니다. FileName 선택한 파일을 반환 할 속성 :

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

또한 열린 파일 창의 설정 에이 줄을 추가하여 하나의 파일 만 선택할 수 있는지 확인합니다.

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top