MonoDevelop中的WinForms应用程序

时间:2009-09-09 21:08:50

标签: winforms mono monodevelop

我刚刚安装了新的MonoDevelop Windows测试版,但在尝试创建C#windows应用程序时,唯一的选择是GTK#。由于Mono支持WinForms,为什么这不是MonoDevelop的选项。我想在我的应用程序中没有GTK#依赖。

3 个答案:

答案 0 :(得分:13)

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

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

AFAIK,你应该考虑mono对winforms的支持,将现有的winforms aplication移植到linux。如果您想从头开始制作跨平台应用,则应使用GTK#

答案 1 :(得分:8)

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

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

答案 2 :(得分:6)

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