【问题标题】:SaveFileDialog.ShowDialog not showing on a form from .dllSaveFileDialog.ShowDialog 未显示在来自 .dll 的表单上
【发布时间】:2017-11-06 18:53:29
【问题描述】:

我有一个包含 SaveFileDialog 作为组件的 Windows 窗体。此表单是从库 (.dll) 中调用的。当您单击 btnExport 时,您应该会看到保存文件对话框窗口。

我的问题是 SaveFileDialog1.ShowDialog 没有显示任何窗口来选择目录路径。

这是我的代码:

Private Sub btnExport_Click(sender As Object, e As EventArgs) Handles btnExport.Click
    SaveFileDialog1.Filter = "XLS File|*.xls"
    SaveFileDialog1.Title = "SaveFileDialog title"
    Try
       ' this should open the dialog
       If Me.SaveFileDialog1.ShowDialog() = DialogResult.OK Then
          ' Do something
       Else
          ' This is a custom function to show messages
          ShowCustomMessage("Error opening SaveFileDialog")
       End If
    Catch ex As Exception
       ' Show exception
    End Try
End Sub

【问题讨论】:

  • 您正在运行什么样的应用程序?即控制台与winforms?您对 System.Windows.Forms 有正确的引用吗?如果您创建了一个新的 UI 线程来托管未明确标记为 STA 的表单,我可以看到它不起作用。显示更多代码,包括表单的显示方式及其宿主线程(如果适用)。
  • 如果您正在创建自己的线程来托管引用的 dll 的表单,请参阅this post。 (仍在等待您提供更多代码)。

标签: vb.net dll openfiledialog savefiledialog


【解决方案1】:

您的代码有效。您可以尝试以下方法 -

  1. 尝试删除 Try-Catch-End Try,因为它可能会向您隐藏错误,因为您没有实施任何处理 Catch 的方法。

  2. 在调用 ShowDialog() 时尝试指定 Owner 对象,以确保它不会落后于您的主窗体。

    Me.SaveFileDialog1.ShowDialog(Me) ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    相关资源
    最近更新 更多