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
risposta
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 #
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.
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
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.
È inoltre necessario aggiungere un riferimento a Sistema –
Sì, ma non è questo il punto, voglio solo usare MonoDevelop ... per un sacco di motivi. –