WinForms Aplicação em MonoDevelop
-
05-07-2019 - |
Pergunta
Acabei de instalar o novo beta MonoDevelop Windows, mas ao tentar criar um aplicativo C # windows a única opção era GTK #. Desde Mono suporta WinForms, porque é que esta não é uma opção em MonoDevelop. Gostaria de não ter o GTK # dependência em minhas aplicações.
Solução
Althought WinForms é suportado em mono desde a versão 2.0, o designer WinForms não é utilizável ainda em MonoDevelop, o que poderia ser a razão para a falta de um WinForms projetar em MonoDevelop
http://www.mono-project.com/WinForms_Designer
AFAIK, você deve pensar em suporte de mono para winforms, como forma de porta winforms existentes aplicação para linux. Se você quiser fazer uma aplicação multi-plataforma a partir do zero, você deve usar GTK #
Outras dicas
Embora não haja WinForms projeto de modelo, você pode WinForms escrever aplicativos em MD em qualquer uma das plataformas MD é executado.
Apenas crie um novo projeto vazio C # e adicionar uma referência para System.Windows.Forms, em seguida, escrever o código, e construir e executar. Embora não haja nenhum designer WinForms em MD, você terá a conclusão de código para os tipos WinForms.
Infelizmente para ressuscitar os mortos, mas eu tentei fazer isso recentemente. Enquanto MonoDevelop não fornece a designer de GUI, você pode realmente escrever WinForms à mão, como mhutch apontou. Ele vai como esta:
- Criar um novo, vazio projeto C #.
- Adicione uma referência para System.Windows.Forms
- Criar um novo arquivo vazio C #:
O conteúdo do arquivo:
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 ());
}
}
}
Expanda seu formulário adicionando componentes para o construtor do MainForm.