2009-09-09 4 views
12

Właśnie zainstalowałem nową wersję beta systemu MonoDevelop, ale przy próbie utworzenia aplikacji Windows C# jedyną opcją było GTK #. Ponieważ Mono obsługuje WinForms, dlaczego nie jest to opcja w MonoDevelop. Chciałbym nie mieć zależności GTK # w moich aplikacjach.Aplikacja WinForms w MonoDevelop

+2

Tak, ale nie o to chodzi, po prostu chcę użyć MonoDevelop ... z wielu różnych powodów. –

Odpowiedz

10

Althought WinForm jest obsługiwana w mono od wersji 2.0, projektant WinForms nie jest jeszcze używane w MonoDevelop, co może być powodem braku projektu WinForms w MonoDevelop

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

AFAIK, ty powinien myśleć o obsłudze mono dla winformów jako sposobu na przeniesienie istniejącej aplikacji WinForm do Linuksa. Jeśli chcesz utworzyć aplikację na wielu platformach od podstaw, powinieneś użyć GTK #

5

Mimo że nie ma szablonu projektu WinForms, możesz pisać pisać aplikacje WinForms w MD na dowolnej platformie MD.

Po prostu utwórz nowy pusty projekt C# i dodaj odwołanie do System.Windows.Forms, następnie napisz swój kod i zbuduj & uruchom. Chociaż nie ma projektanta WinForm w MD, będziesz mieć uzupełnienie kodu dla typów WinForm.

+0

Używamy przestrzeni nazw System.Windows.Forms, ponieważ mamy już zbudowane nasze interfejsy. Do dodatkowej pracy w interfejsie używamy SharpDevelop, a następnie kodujemy w MD. – IAbstract

4

Przepraszamy za wskrzeszanie zmarłych, ale starałem się to ostatnio zrobić. Podczas gdy MonoDevelop nie zapewnia projektanta GUI, naprawdę możesz napisać WinFormy ręcznie, jak zauważył mhutch. To wygląda tak:

  • Utwórz nowy, pusty projekt C#.
  • Dodaj odwołanie do System.Windows.Forms
  • Utwórz nowy, pusty plik C#:

zawartość pliku:

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

rozwinąć swoje formularz dodawania składników do MainForm-tych konstruktor.

+0

Należy również dodać odniesienie do systemu –