我刚刚安装了新的MonoDevelop Windows测试版,但在尝试创建C#windows应用程序时,唯一的选择是GTK#。由于Mono支持WinForms,为什么这不是MonoDevelop的选项。我想在我的应用程序中没有GTK#依赖。
答案 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指出的那样。它是这样的:
文件内容:
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的构造函数添加组件来扩展您的表单。