82 votes

comment exécuter un winform depuis une application console ?

Comment créer, exécuter et contrôler un winform à partir d'une application console ?

4voto

Biju Joseph Points 59

Toutes les réponses ci-dessus sont d'une grande aide, mais j'ai pensé ajouter quelques conseils supplémentaires pour le débutant absolu.

Donc, vous voulez faire quelque chose avec Windows Forms, dans une application console :

Ajouter une référence à System.Windows.Forms.dll dans votre projet d'application Console dans Solution Explorer. (Clic droit sur Nom de la solution->addition->Référence...)

Spécifier l'espace de nom en code : using System.Windows.Forms;

Déclarez les propriétés nécessaires dans votre classe pour les contrôles que vous souhaitez ajouter au formulaire.

par exemple int Left { get; set; } // need to specify the LEFT position of the button on the Form

Puis, ajoutez le code suivant dans le fichier Main() :

static void Main(string[] args)
{
Application.EnableVisualStyles();
        Form frm = new Form();  // create aForm object

        Button btn = new Button()
        {
            Left = 120,
            Width = 130,
            Height = 30,
            Top = 150,
            Text = "Biju Joseph, Redmond, WA"
        };
       //… more code 
       frm.Controls.Add(btn);  // add button to the Form
       //  …. add more code here as needed

       frm.ShowDialog(); // a modal dialog 
}

2voto

Sunsetquest Points 3086

Cela répondait à mes besoins...

Task mytask = Task.Run(() =>
{
    MyForm form = new MyForm();
    form.ShowDialog();
});

Cela permet de lancer le formulaire dans un nouveau fil et de ne pas libérer le fil avant la fermeture du formulaire. Task est dans .Net 4 et plus.

1voto

Grzenio Points 16802

Vous devriez être en mesure d'utiliser la classe Application de la même manière que les applications Winform. La façon la plus simple de commencer un nouveau projet est de faire ce que Marc a suggéré : créer un nouveau projet Winform, puis le changer dans les options en une application console.

0voto

Seule la réponse de Bill ( AllowConsole ) fonctionnera, et seulement sur XP ou supérieur. Dans Windows, une application a une interface graphique ou une console ; vous devez créer une nouvelle console pour faire ce que vous voulez.

0voto

Raj kumar Points 31

Cela dépend totalement de votre choix, de la manière dont vous allez l'appliquer.
a. Processus attaché, ex : entrée sur le formulaire et impression sur la console.
b. Processus indépendant, ex : démarrer un timer, ne pas fermer même si la console sort.

pour un,

Application.Run(new Form1());
//or -------------
Form1 f = new Form1();
f.ShowDialog();

pour b, utiliser un fil, ou une tâche quelconque, Comment ouvrir le formulaire win de manière indépendante ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X