2011-05-25 67 views
0

是否有可能在控制台应用程序中没有按钮的Msgbox。我想弹出msgbox,然后在任务完成时消失。或者我可以将msgboxresult发送到某种形式的窗口,当文件被写入时它会消失?Msgbox等待,VB.NET

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 

回答

1

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

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

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

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

+0

......你忘了提及他应该在非模态状态下打开表格。 – 2011-05-25 12:41:08

+0

为什么在.NET 4.0中使用winforms? – Jodrell 2011-05-25 13:05:06

+0

@Jodrell:我的大部分经验都在WinForms中,所以我会自动将它用于这样一个小应用程序,因为WPF或WinForms并没有真正为此做出太多改变。 – 2011-05-25 13:53:21

1

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

通常,“控制台”应用程序应该是非图形的。

您不想使用控制台应用程序来解散窗口。由于.NET 4.0可用,因此您可能需要一个可写入控制台的WPF应用程序。

在SO上有一个关于输出到WPF here的控制台的文章。

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