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

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


person Adam Haile    schedule 09.09.2009    source источник
comment
Да, но дело не в этом, я просто хочу использовать MonoDevelop ... по целому ряду причин.   -  person Adam Haile    schedule 10.09.2009


Ответы (3)


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

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

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

person Ricardo Amores    schedule 09.09.2009

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

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

person Mikayla Hutchinson    schedule 09.09.2009
comment
Мы используем пространство имен System.Windows.Forms, поскольку наши пользовательские интерфейсы уже созданы. Для дополнительной работы в пользовательском интерфейсе мы используем SharpDevelop, а затем кодируем в MD. - person IAbstract; 22.02.2010

Простите за воскрешение мертвых, но недавно я пытался это сделать. Хотя 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.

person alexchandel    schedule 08.07.2013
comment
Вы также должны добавить ссылку на Систему - person Gabriel Hautclocq; 12.09.2017