2009-09-09 3 views
12

Ho appena installato la nuova beta di Windows di MonoDevelop, ma quando provavo a creare un'applicazione Windows C# l'unica opzione era GTK #. Poiché Mono supporta WinForms, perché non è un'opzione in MonoDevelop. Mi piacerebbe non avere la dipendenza GTK # nelle mie applicazioni.Applicazione WinForms in MonoDevelop

+2

Sì, ma non è questo il punto, voglio solo usare MonoDevelop ... per un sacco di motivi. –

risposta

10

Althought WinForms è supportato in mono dalla versione 2.0, il progettista WinForms non è utilizzabile ancora in MonoDevelop, che potrebbe essere la ragione per la mancanza di un progetto WinForms in MonoDevelop

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

per quanto ne so, è dovrebbe pensare al supporto di mono per winforms come modo per trasferire l'applicazione delle winform esistenti a Linux. Se vuoi creare un'app cross-platform da zero, devi utilizzare GTK #

5

Sebbene non ci sia un modello di progetto WinForms, puoi possibile scrivere app WinForms in MD su una delle piattaforme su cui gira MD.

Basta creare un nuovo progetto C# vuoto e aggiungere un riferimento a System.Windows.Forms, quindi scrivere il codice e creare & eseguito. Sebbene non ci sia un designer Winforms in MD, avrai il completamento del codice per i tipi di Winforms.

+0

Stiamo utilizzando lo spazio dei nomi System.Windows.Forms dato che abbiamo già creato le nostre interfacce utente. Per ulteriore lavoro nell'interfaccia utente, utilizziamo SharpDevelop e quindi eseguiamo la codifica in MD. – IAbstract

4

Scusa per aver risuscitato il morto, ma ho provato a farlo di recente. Mentre MonoDevelop non fornisce il progettista della GUI, puoi davvero scrivere Winforms a mano, come ha sottolineato Mhutch. Funziona così:

  • Creare un nuovo progetto C# vuoto.
  • Aggiungere un riferimento alla System.Windows.Forms
  • Creare un nuovo, vuoto file C#:

Il contenuto del file:

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()); 
     } 
    } 
} 

Espandi il tuo modulo con l'aggiunta di componenti di MainForm costruttore.

+0

È inoltre necessario aggiungere un riferimento a Sistema –