2011-05-25 3 views
0

Est-il possible d'avoir un Msgbox sans bouton dans une application console. Je voudrais faire apparaître un msgbox puis disparaître une fois la tâche terminée. Ou est-ce que je pourrais envoyer le msgboxresult à une certaine forme de fenêtre qui disparaîtrait juste quand le dossier a été écrit?Msgbox Attendre jusqu'à, 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 

Répondre

1

Si vous voulez avoir une application console avec une interface graphique, je vous suggère qu'il pourrait être plus facile de faire une application WinForms. Il suffit de créer une nouvelle application WinForms minuscule, faire le Form petite par défaut comme une boîte de dialogue et le faire avoir un seul bouton invisible Close.

Ensuite, vous pouvez simplement afficher le bouton Close quand il est terminé. N'oubliez pas de désactiver la boîte de contrôle sur le Form (le X dans le coin supérieur droit) et de gérer toute combinaison de clavier qui pourrait le fermer. Editer: Ou si pour une raison quelconque vous devez l'avoir comme une application de console, alors vous pouvez toujours écrire une petite application distincte qui ne fait que la partie de l'interface graphique dont vous avez besoin et avoir l'application Console démarrer l'application GUI, envoyer le texte à afficher.

+0

... vous avez oublié de mentionner qu'il devrait ouvrir le formulaire dans un état non-modal. –

+0

Pourquoi utiliser winforms dans .Net 4.0? – Jodrell

+0

@Jodrell: La plupart de mon expérience est dans WinForms, donc je l'utiliserais automatiquement pour une si petite application, puisque WPF ou WinForms ne fait pas vraiment de différence. –

1

D'abord, un point rapide. Un MsgBox est une boîte de dialogue modale, donc l'exécution sera interrompue jusqu'à ce que l'utilisateur réponde, vous ne pouvez pas l'utiliser.

En général, les applications «console» doivent être non graphiques.

Vous ne souhaitez pas utiliser une application console pour afficher une fenêtre. Depuis que .Net 4.0 est disponible pour vous, une application WPF peut écrire sur la console.

Il existe un article sur la sortie sur la console avec WPF here sur SO.

Vous devriez faire votre travail sur un fil différent en utilisant peut-être un System.ComponentModel.BackgroundWorker. Cela permettra au Window de répondre à l'interaction de l'utilisateur et au rendu pendant que votre tâche progresse.

Questions connexes