2011-05-25 83 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響應用戶交互並在任務進行時呈現。