为什么我必须取消两次OpenFileDialog才能关闭它

时间:2018-08-27 04:09:31

标签: vb.net openfiledialog

代码如下:

  Private Sub btn_selectfile_Click(sender As Object, e As EventArgs) Handles btn_selectfile.Click
    OpenFileDialog1.FileName = ""
    OpenFileDialog1.Filter = "Text Files | *.txt"

    If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
        'some code here
    ElseIf OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.Cancel Then
        OpenFileDialog1.Dispose()
    End If

End Sub

在选择文件时,如果我颠倒它们并将DialogResult.OK放在ElseIf中,也会发生这种情况。

我应该如何进行?感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

调用一次ShowDialog,保存结果,然后检查一下。当前,您要拨打ShowDialog两次,向用户显示两次对话框。

Dim result As DialogResult = OpenFileDialog1.ShowDialog();

If result = Windows.Forms.DialogResult.OK Then
    'some code here
ElseIf result = Windows.Forms.DialogResult.Cancel Then
    OpenFileDialog1.Dispose()
End If

答案 1 :(得分:0)

我猜想,当您取消对话框时,您想退出过程。在这种情况下,您只需要检查结果是否为Cancel

If OpenFileDialog1.ShowDialog() = DialogResult.Cancel Then Exit Sub

该行之后的结果就可以了,因此您可以安全地获取文件路径。