# Mono Winforms 简介

> 原文： [http://zetcode.com/gui/csharpwinforms/introduction/](http://zetcode.com/gui/csharpwinforms/introduction/)

Mono Winforms 教程的第一部分介绍了 Mono 平台和 Winforms 库。

## 关于本教程

这是 Mono C# Winforms 教程。 Mono Winforms 教程适用于初学者。 本教程的目的是向读者介绍 Mono Winforms 中 GUI 编程的基础知识。 本教程是在 Linux 上创建并测试的。 但是，它也可以在其他操作系统上使用。 大多数示例都应运行而无需修改。 可以在此处下载本教程中使用的图像。

## Mono

Mono Project 是 Xamarin 赞助的一项开放开发计划，目的是开发 Microsoft.NET 开发平台的开源 UNIX 版本。 它是.NET 兼容的工具集，其中包括 C# 编译器，公共语言运行库，ADO.NET，ASP.NET 和 Winforms 库。

单声道可分为三组：

*   核心组成
*   Gnome 开发栈
*   Microsoft 兼容性栈

核心组件是 C# 语言和公共语言运行时。 Gnome 开发栈包括 GTK# 库和各种数据库连接库。 最后，Microsoft 兼容性栈包括 ADO.NET，ASP.NET 和 Winforms 库。

Mono 是多平台编程平台。 它可以在 Linux，BSD，Mac OS X，Solaris 和 Windows 操作系统上运行。 这是一种多语言的工作。 目前，仅完全支持 C# 语言。 诸如 Visual Basic 或 IronPython 之类的语言尚未完成。

## Winforms

Windows Forms 是图形用户界面应用编程接口（API），包含在 Microsoft .NET Framework 中。 截至 2008 年 5 月 13 日，Mono 的 System.Windows.Forms 2.0 已完成 API。 简而言之，Winforms 是一个用于创建 GUI 应用的库。

## 编译示例

我们的教程使用 C# 语言。 要编译本教程中的所有示例，我们使用`gmcs`编译器。 `gmcs`编译器实现了完整的 C# 2.0 规范，包括泛型。 C# 源文件必须以.cs 扩展名结尾。

```cs
$ gmcs --about
The Mono C# compiler is (C) 2001-2008, Novell, Inc.
The compiler source code is released under the terms of the GNU GPL
For more information on Mono, visit the project Web site
   http://www.mono-project.com
The compiler was written by Miguel de Icaza, Ravi Pratap, Martin Baulig, 
Marek Safar, Raja R Harinath, Atushi Enomoto

```

我们有一个简单的 C# 源文件。 稍后我们将讨论源代码。 现在，我们专注于编译过程。

`simple.cs`

```cs
using System.Windows.Forms;
using System.Drawing;

public class Simple : Form
{
    public Simple()
    {
       Text = "Simple";
       Size = new Size(250, 200);
       CenterToScreen();
    }

    static public void Main()
    {
       Application.Run(new Simple());
    }
}

```

C# 应用使用称为程序集的模块。 默认情况下，Mono C# 编译器仅引用三个程序集：`mscorlib.dll`，`System.dll`和`System.Xml.dll`。 必须使用编译器的命令行选项指定任何其他程序集。 在我们的简单示例中，我们需要`System.Windows.Forms.dll`和`System.Drawing.dll`程序集。

```cs
 gmcs -r:System.Windows.Forms.dll -r:System.Drawing.dll simple.cs

```

在这里，我们编译`simple.cs`源文件。 如果未指定输出文件名，则将获得名称等于源文件名的 exe 文件。 在我们的示例中，为`simple.exe`文件。

```cs
 gmcs -r:System.Windows.Forms.dll -r:System.Drawing.dll simple.cs -out:simpleexample.exe

```

在这里，我们指定输出文件名。 我们编译源文件并获取`simpleexample.exe`文件。

## 参考



*   [mono-project.com](http://www.mono-project.com)
*   [msdn.com 上的 Winforms 2.0](http://msdn.microsoft.com/en-us/library/bb966997.aspx)
*   [java2s.com](http://java2s.com)
*   [wikipedia.org](http://wikipedia.org)



这是 Mono Winforms 库的简介。