Приложение WinForms в MonoDevelop - PullRequest
       11

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

17 голосов
/ 10 сентября 2009

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

Ответы [ 3 ]

13 голосов
/ 10 сентября 2009

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

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

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

8 голосов
/ 10 сентября 2009

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

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

6 голосов
/ 09 июля 2013

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

  • Создайте новый пустой проект 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.

...