Приложение WinForms в MonoDevelop

160
20

Я только что установил новую бета-версию MonoDevelop Windows, но при попытке создать приложение Windows С# единственным вариантом был GTK #. Поскольку Mono поддерживает WinForms, почему это не вариант в MonoDevelop. Я бы не хотел иметь зависимость GTK # в моих приложениях.

спросил(а) 2021-01-25T19:41:06+03:00 5 месяцев назад
1
Решение
147

Несмотря на то, что Winforms поддерживается в моно с версии 2.0, дизайнер WinForms еще не используется в MonoDevelop, что может быть причиной отсутствия проекта WinForms в MonoDevelop


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

AFAIK, вы должны подумать о поддержке mono для winforms как способа переноса существующего приложения winforms в linux. Если вы хотите сделать кросс-платформенное приложение с нуля, вы должны использовать GTK #

ответил(а) 2021-01-25T19:41:06+03:00 5 месяцев назад
109

Несмотря на отсутствие шаблона проекта WinForms, вы можете писать приложения WinForms в MD на любой из платформ MD.

Просто создайте новый пустой проект С# и добавьте ссылку на System.Windows.Forms, затем напишите свой код, создайте и запустите. Хотя в MD нет дизайнера Winforms, у вас будет завершение кода для типов Winforms.

ответил(а) 2021-01-25T19:41:06+03:00 5 месяцев назад
99

Извините за воскрешение мертвых, но я пытался это сделать недавно. Хотя MonoDevelop не предоставляет дизайнера GUI, вы действительно можете написать Winforms вручную, как указал mhutch. Это происходит следующим образом:


    Создайте новый пустой проект С#.
    Добавить ссылку на System.Windows.Forms
    Создайте новый пустой файл С#:

Содержимое файла:


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.

ответил(а) 2021-01-25T19:41:06+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема