【问题标题】:How to exit a sub if a dialog is closed?如果对话框关闭,如何退出子程序?
【发布时间】:2013-07-24 16:38:03
【问题描述】:

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

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

我对编码和论坛比较陌生,如果我的代码或帖子不完全正确,请见谅。

【问题讨论】:

    标签: vb.net openfiledialog


    【解决方案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
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-29
        • 2013-03-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多