如果对话框关闭,如何退出子?

时间:2013-07-25 00:14:44

标签: vb.net openfiledialog

我有一个sub,用户在单击按钮时打开文件对话框,然后使用文件名解压缩它(我的程序提取zip文件)。如果用户没有选择.zip文件,则会弹出一条消息,告知您选择正确的格式。这工作正常,除非他们取消了打开的文件对话框,消息仍然会弹出,如果用户取消,有没有办法退出sub?这是一些代码:

Private Sub AddJarMod_Click(sender As Object, e As EventArgs) Handles AddJarMod.Click
    addModDialog.ShowDialog()
    newJarModDir = addModDialog.FileName
    newJarMod = System.IO.Path.GetFileNameWithoutExtension(newJarModDir)
    If System.IO.Path.GetExtension(newJarModDir) = ".zip" Then
        jarModList.Items.Add(newJarMod)
        devConsoleList.Items.Add(newJarModDir)
    ElseIf System.IO.Path.GetExtension(newJarModDir) <> ".zip" Then
        MsgBox("File extension not a zip")
    End If
End Sub

我对编码和论坛相对较新,如果我的代码或帖子不完全正确,我很抱歉。

2 个答案:

答案 0 :(得分:1)

您只需要检查从模式表单返回的DialogResult。这样,只有当代码从表单中获得ok时,才会执行代码。

Private Sub AddJarMod_Click(sender As Object, e As EventArgs) Handles AddJarMod.Click
 If addModDialog.ShowDialog() = DialogResult.Ok Then
  newJarModDir = addModDialog.FileName
  newJarMod = System.IO.Path.GetFileNameWithoutExtension(newJarModDir)
  If System.IO.Path.GetExtension(newJarModDir) = ".zip" Then
    jarModList.Items.Add(newJarMod)
    devConsoleList.Items.Add(newJarModDir)
  ElseIf System.IO.Path.GetExtension(newJarModDir) <> ".zip" Then
    MsgBox("File extension not a zip")
  End If
 End If
End Sub

答案 1 :(得分:0)

更好的方法是将OpenFileDialog限制为仅显示zip文件。

addModDialog.Filter = "zip file (*.zip)|*.zip;"
If addModDialog.ShowDialog() = DialogResult.Ok Then
...