在 FolderBrowserDialog 中单击“确定”时表单关闭 - vb.net

Form closes when clicking OK in a FolderBrowserDialog - vb.net

我有一个 Main 表单和一个 Options 表单,它们在单击 Main 表单中的 "Options" 按钮时启动。在 Options 表格中,我必须 select 工作路径。当点击Options表单中的"OK"按钮返回Main表单时,我想检查工作路径是否存在:

If My.Computer.FileSystem.DirectoryExists(TextBoxWorkPath.Text) Then
   Main.WorkPath = TextBoxWorkPath.Text
Else
   MessageBox.Show("Please, enter a valid work path.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
   ButtonChangePath_Click(sender, New System.EventArgs())
End If

ButtonChangePath_Click() 后面的代码(在 Options 形式)是:

Private Sub ButtonChangePath_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonChangePath.Click
        Dim fb = New FolderBrowserDialog
        fb.Description = "Select the destination folder for the output files:"
        If fb.ShowDialog() = DialogResult.OK Then
            TextBoxWorkPath.Text = fb.SelectedPath
        End If
End Sub

当我检查工作路径是否存在时,我再次打开 FolderBrowserDialog 到 select 一个正确的路径。但是,当我单击 "OK" 时,Options 表单关闭并转到 Main 表单。如果我再次点击 "Options" 按钮,工作路径与之前相同。

终于,我修好了。我不得不将 Windows.Forms.DialogResult.None 放在 If 语句中,以免关闭 Options 表单。

If My.Computer.FileSystem.DirectoryExists(TextBoxWorkPath.Text) Then
    Main.WorkPath = TextBoxWorkPath.Text
Else
    MsgBox("Please, enter a valid work path.", MsgBoxStyle.Exclamation, "Attention!")
    Me.DialogResult = Windows.Forms.DialogResult.None
End If

所以,当点击OK按钮时,仍然停留在Options形式。