VB6如何将字符串值从form2返回到Form1

VB6如何将字符串值从form2返回到Form1,vb6,Vb6,在我的项目中,有两种形式: 首先,我将其命名为frmSettings,我将使用文本框在INI文件中保存值。 第二种形式我把它命名为frmSelectFolder,它包含了DirListBox和2个命令按钮 如上图所示,在设置表单中,我有8个文本框和8个命令按钮来浏览文件夹路径,该路径将从frmSelectFolder中选择 如何对所有文本框使用frmSelectFolder,而无需在每个命令按钮上复制此表单以返回目录框控制值?以下是辅助frmSelectFolder表单的一些示例代码 Opti

在我的项目中,有两种形式: 首先,我将其命名为frmSettings,我将使用文本框在INI文件中保存值。 第二种形式我把它命名为frmSelectFolder,它包含了DirListBox和2个命令按钮

如上图所示,在设置表单中,我有8个文本框和8个命令按钮来浏览文件夹路径,该路径将从frmSelectFolder中选择


如何对所有文本框使用frmSelectFolder,而无需在每个命令按钮上复制此表单以返回目录框控制值?

以下是辅助
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

这里有一个完整的示例项目链接供您研究:

每次在“设置”中按下按钮时,调用显示SelectFolder表单并返回文件夹的函数。这个返回的文件夹被分配给文本框。你似乎是个初学者,所以我不得不问你为什么要使用VB6?在这一点上它已经过时了。你最好从VB.Net或更好的C开始。亲爱的Brian。我可以调用显示SelectFolder form的函数这没问题,我这里的意思是,当我按下按钮1时,它显示SelectFolder form,然后它将字符串值返回到text1,当我按下按钮时,它显示相同的表单SelectForm,它将阀门返回到text2,依此类推。那么你可以在这方面帮助我吗?亲爱的Slugsie,我使用VB6是因为我们在这里使用的项目有大量的源代码,这一次我们满意地使用了VB6亲爱的Mohamed,如果在VB6中有大量的源代码,那么其中肯定实现了类似的交互——主窗体调用辅助窗体并传递输入参数,成功后在输出参数中接收结果。这是基础编程101在每一种编程语言的IMO。我可以写一个小片段作为回答,如果你需要帮助如何可以在10-20行代码中完成。亲爱的wqw,这正是我需要的,我感谢你的好意。
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