Я только что установил новую бета-версию MonoDevelop для Windows, но при попытке создать приложение Windows на C # единственным вариантом был GTK #. Поскольку Mono поддерживает WinForms, почему это не вариант в MonoDevelop. Я бы хотел, чтобы в моих приложениях не было зависимости GTK #.
Приложение WinForms в MonoDevelop
Ответы (3)
Хотя Winforms поддерживается в моно, начиная с версии 2.0, конструктор WinForms еще не может использоваться в MonoDevelop, что может быть причиной отсутствия проекта WinForms в MonoDevelop.
http://www.mono-project.com/WinForms_Designer
AFAIK, вы должны думать о поддержке winforms в mono как о способе переноса существующего приложения winforms на Linux. Если вы хотите создать кроссплатформенное приложение с нуля, вам следует использовать GTK #
Хотя не существует шаблона проекта WinForms, вы можете писать приложения WinForms в MD на любой из платформ, на которых работает MD.
Просто создайте новый пустой проект C # и добавьте ссылку на System.Windows.Forms, затем напишите свой код, соберите и запустите. Хотя в MD нет конструктора Winforms, у вас будет автозавершение кода для типов Winforms.
Простите за воскрешение мертвых, но недавно я пытался это сделать. Хотя MonoDevelop не предоставляет конструктора графического интерфейса, вы действительно можете писать Winforms вручную, как указал Мхатч. Это выглядит так:
- Создайте новый пустой проект C #.
- Добавьте ссылку на System.Windows.Forms
- Создайте новый пустой файл C #:
Содержимое файла:
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 ());
}
}
}
Расширьте форму, добавив компоненты в конструктор MainForm.