2009-09-09 26 views
12

Acabo de instalar la nueva versión beta de MonoDevelop para Windows, pero cuando intentaba crear una aplicación de Windows C#, la única opción era GTK #. Como Mono admite WinForms, ¿por qué no es una opción en MonoDevelop? Me gustaría no tener la dependencia GTK # en mis aplicaciones.Aplicación WinForms en MonoDevelop

+2

Sí, pero ese no es el punto, solo quiero usar MonoDevelop ... por un montón de razones. –

Respuesta

10

Althought Winforms se apoya en mono desde la versión 2.0, el diseñador de Windows Forms no es utilizable sin embargo, en MonoDevelop, lo que podría ser la razón de la falta de un proyecto WinForms en MonoDevelop

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

yo sepa, se debería pensar en el soporte de mono para winforms como una forma de portar la aplicación winforms existente a linux. Si desea crear una aplicación multiplataforma desde cero, debe usar GTK #

5

Aunque no hay una plantilla de proyecto WinForms, puede escribir aplicaciones WinForms en MD en cualquiera de las plataformas donde MD se ejecuta.

Simplemente cree un nuevo proyecto de C# vacío y agregue una referencia a System.Windows.Forms, luego escriba su código y ejecute & ejecutar. Aunque no hay un diseñador de Winforms en MD, tendrá el código completo para los tipos de Winforms.

+0

Estamos utilizando el espacio de nombres System.Windows.Forms porque ya hemos creado nuestras IU. Para el trabajo adicional en la interfaz de usuario estamos usando SharpDevelop y luego codificando en MD. – IAbstract

4

Perdón por resucitar a los muertos, pero intenté hacer esto recientemente. Si bien MonoDevelop no proporciona el diseñador de GUI, de hecho puede escribir Winforms a mano, como señaló mhutch. Funciona de la siguiente manera:

  • Cree un nuevo proyecto de C# vacío.
  • Añadir una referencia a System.Windows.Forms
  • Crear un nuevo, vacío C# archivo:

El contenido del archivo:

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

Expandir su formulario mediante la adición de componentes a la Mainform constructor.

+0

También debe agregar una referencia al Sistema –

Cuestiones relacionadas