W moim projekcie znajdują się dwie formy: pierwsza forma, którą nazwałem FRMSETTINGS, użyję pola tekstowe, aby zapisać wartości w pliku ini. Druga forma, którą nazwałem FrmSelectFolder, włączyłem do Dirlistbox i 2 przycisków poleceń

enter image description here

Jak pokazano w podłączonym obrazie powyżej w formularzu Ustawienia Mam 8 pola tekstowe i 8 przycisków poleceń, aby przeglądać ścieżkę folderów, którą zostanie wybrany z frmselectfolder

Jak używać frmselectfolder dla wszystkich pola tekstowych bez duplikacji tego formularza na każdy przycisk polecenia, aby zwrócić wartość kontrolną DirlistBox?

vb6
0
Mohamed Soliman 1 sierpień 2020, 18:24

1 odpowiedź

Najlepsza odpowiedź

Oto przykładowy kod dla drugiego frmSelectFolder

Option Explicit

Private m_bConfirm          As Boolean

Public Function Init(sPath As String) As Boolean
    Dir1.Path = sPath
    Show vbModal
    If m_bConfirm Then
        sPath = Dir1.Path
        '--- success
        Init = True
    End If
    Unload Me
End Function

Private Sub cmdOk_Click()
    If LenB(Dir1.Path) = 0 Then
        MsgBox "Please select a path!", vbExclamation
        Exit Sub
    End If
    m_bConfirm = True
    Visible = False
End Sub

Private Sub cmdCancel_Click()
    Visible = False
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If UnloadMode <> vbFormCode Then
        Cancel = 1
        Visible = False
    End If
End Sub

Oto jak nazywać Init Metoda powyżej z pierwotnego {x1}}

Option Explicit

Private Sub cmdStartupPath_Click()
    Dim sPath           As String
    Dim oFrmSelector    As New frmSelectFolder
    
    sPath = txtStartupPath.Text
    If oFrmSelector.Init(sPath) Then
        txtStartupPath.Text = sPath
        txtStartupPath.SetFocus
    End If
End Sub

Private Sub cmdDownloadPath_Click()
    Dim sPath           As String
    Dim oFrmSelector    As New frmSelectFolder
    
    sPath = txtDownloadPath.Text
    If oFrmSelector.Init(sPath) Then
        txtDownloadPath.Text = sPath
        txtDownloadPath.SetFocus
    End If
End Sub

Oto link do kompletnego przykładowego projektu dla Ciebie do Research: Select Folder.Zip

1
wqw 2 sierpień 2020, 13:22