2009-09-09 19 views
12

Ich habe gerade die neue MonoDevelop-Windows-Betaversion installiert, aber beim Versuch, eine C# -Windows-Anwendung zu erstellen, war die einzige Option GTK #. Da Mono WinForms unterstützt, ist dies in MonoDevelop nicht möglich. Ich möchte nicht die GTK # Abhängigkeit in meinen Anwendungen haben.WinForms-Anwendung in MonoDevelop

+2

Ja, aber das ist nicht der Punkt, ich möchte nur MonoDevelop verwenden ... für eine ganze Reihe von Gründen. –

Antwort

10

Althought WinForms seit Version 2.0 in Mono unterstützt wird, ist die WinForms-Designer nicht verwendbar noch in MonoDevelop, was der Grund für das Fehlen eines WinForms-Projekt in MonoDevelop

http://www.mono-project.com/WinForms_Designer

AFAIK sein könnte, Sie sollte mono die Unterstützung für WinForms als eine Möglichkeit, vorhandene WinForms-Anwendung auf Linux portieren. Wenn Sie eine plattformübergreifende App von Grund auf erstellen möchten, sollten Sie GTK verwenden.

5

Obwohl es keine WinForms-Projektvorlage gibt, können Sie WinForms-Anwendungen in MD auf einer beliebigen Plattform schreiben, auf der MD ausgeführt wird.

Erstellen Sie einfach ein neues leeres C# -Projekt und fügen Sie einen Verweis auf System.Windows.Forms hinzu, schreiben Sie dann Ihren Code und erstellen Sie & run. Obwohl es keinen Winforms-Designer in MD gibt, haben Sie Code-Vervollständigung für die Winforms-Typen.

+0

Wir verwenden den System.Windows.Forms-Namespace, da bereits unsere UIs erstellt wurden. Für zusätzliche Arbeit in der Benutzeroberfläche verwenden wir SharpDevelop und kodieren dann in MD. – IAbstract

4

Entschuldigung, dass ich die Toten auferweckt habe, aber ich habe das kürzlich versucht. Während MonoDevelop den GUI-Designer nicht zur Verfügung stellt, können Sie Winforms tatsächlich von Hand schreiben, wie mhutch darauf hingewiesen hat. Es geht so:

  • Erstellen Sie ein neues, leeres C# -Projekt.
  • erstellen Fügen Sie einen Verweis auf System.Windows.Forms
  • eine neue, leere C# Datei:

Der Inhalt der Datei:

using System; 
using System.Windows.Forms; 

namespace HelloForms 
{ 
    public class MainForm: Form 
    { 
     Label label1 = new Label(); 

     public MainForm() 
     { 
      this.SuspendLayout(); 

      // Initialize your components here 
      this.label1.Text = "Hello, World!"; 

      this.Controls.Add(label1); 
      this.ResumeLayout(); 
      this.Name = "MainForm Name."; 
      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 
      this.Text = "MainForm Title!"; 

     } 
    } 

    public class Program 
    { 
     public static void Main(string[] args) { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      Application.Run(new MainForm()); 
     } 
    } 
} 

Ihr Formular erweitern, indem Komponenten Mainform der Zugabe Konstrukteur.

+0

Sie müssen auch einen Verweis auf System hinzufügen –