17

我刚刚安装了新的 MonoDevelop Windows beta,但是在尝试创建 C# Windows 应用程序时,唯一的选择是 GTK#。既然 Mono 支持 WinForms,为什么这不是 MonoDevelop 中的一个选项。我希望我的应用程序中没有 GTK# 依赖项。

4

3 回答 3

15

虽然从 2.0 版本开始支持单声道 Winforms,但 WinForms 设计器在 MonoDevelop 中尚不可用,这可能是 MonoDevelop 中缺少 WinForms 项目的原因

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

AFAIK,您应该将 mono 对 winforms 的支持视为将现有 winforms 应用程序移植到 linux 的一种方式。如果你想从头开始制作一个跨平台的应用程序,你应该使用 GTK#

于 2009-09-09T22:19:48.093 回答
11

虽然没有 WinForms 项目模板,但您可以在 MD 运行的任何平台上用 MD 编写 WinForms 应用程序。

只需创建一个新的空 C# 项目并添加对 System.Windows.Forms 的引用,然后编写代码并构建并运行。尽管 MD 中没有 Winforms 设计器,但您将完成 Winforms 类型的代码。

于 2009-09-09T22:27:08.507 回答
7

很抱歉让死者复活,但我最近尝试过这样做。虽然 MonoDevelop 不提供 GUI 设计器,但您确实可以手动编写 Winform,正如 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 的构造函数来扩展您的表单。

于 2013-07-08T23:44:24.977 回答