【问题标题】:Msgbox Wait until, VB.NETMsgbox 等到,VB.NET
【发布时间】:2011-09-01 17:49:18
【问题描述】:

在控制台应用程序中是否可以有一个没有按钮的 Msgbox。我想弹出一个消息框,然后在任务完成后消失。或者我可以将 msgboxresult 发送到某种形式的窗口,该窗口会在文件写入后消失?

MsgBox("The users on the domain are being gathered. A prompt will appear when all information has been gathered.")
    Dim userFile2 As String = savefileDialog1.FileName & ".txt"
    Dim fileExists2 As Boolean = File.Exists(userFile2)
    Using sw As New StreamWriter(File.Open(userFile2, FileMode.OpenOrCreate))
        For Each d As DirectoryEntry In de.Children()
            sw.WriteLine(d.Name)
        Next
    End Using

【问题讨论】:

    标签: vb.net visual-studio-2010


    【解决方案1】:

    首先,快速点。 MsgBox 是一个模态对话框,因此在用户响应之前会暂停执行,您不能使用它。

    一般来说,“控制台”应用程序应该是非图形的。

    您不想使用控制台应用程序来显示窗口。由于 .Net 4.0 可供您使用,您可能需要一个可以写入控制台的 WPF 应用程序。

    有一篇关于在 SO 上使用 WPF here 输出到控制台的帖子。

    您应该使用System.ComponentModel.BackgroundWorker 在不同的线程上完成您的工作。这将允许Window 响应用户交互并在您的任务进行时呈现。

    【讨论】:

      【解决方案2】:

      如果您想要一个带有 GUI 的控制台应用程序,我建议只制作一个 WinForms 应用程序可能会更容易。只需创建一个新的小型 WinForms 应用程序,将默认的 Form 设置为小对话框并使其只有一个不可见的 Close 按钮。

      然后您可以在完成后显示Close 按钮。

      请记住禁用Form 上的控制框(右上角的 X)并处理任何可能关闭它的键盘组合。

      编辑:或者如果出于任何原因您必须将其作为控制台应用程序,那么您仍然可以编写一个单独的小型应用程序,只执行您需要的 GUI 部分,并让控制台应用程序启动 GUI 应用程序,发送覆盖要显示的文本。

      【讨论】:

      • ...你忘了说他应该以非模态状态打开表单。
      • 为什么在 .Net 4.0 中使用 winforms?
      • @Jodrell:我的大部分经验都在 WinForms 中,所以我会自动将它用于这么小的应用程序,因为 WPF 或 WinForms 对此并没有太大的区别。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多