184.md 3.7 KB
Newer Older
W
wizardforcel 已提交
1 2 3 4 5 6 7 8
# Mono Winforms 简介

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

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

## 关于本教程

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

W
wizardforcel 已提交
11
## Mono
W
wizardforcel 已提交
12

W
wizardforcel 已提交
13
Mono Project 是 Xamarin 赞助的一项开放开发计划,目的是开发 Microsoft.NET 开发平台的开源 UNIX 版本。 它是.NET 兼容的工具集,其中包括 C# 编译器,公共语言运行库,ADO.NET,ASP.NET 和 Winforms 库。
W
wizardforcel 已提交
14 15 16 17 18 19 20

单声道可分为三组:

*   核心组成
*   侏儒开发栈
*   Microsoft 兼容性堆栈

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

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

## Winforms

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

W
wizardforcel 已提交
29
## 编译示例
W
wizardforcel 已提交
30

W
wizardforcel 已提交
31
我们的教程使用 C# 语言。 要编译本教程中的所有示例,我们使用`gmcs`编译器。 `gmcs`编译器实现了完整的 C# 2.0 规范,包括泛型。 C# 源文件必须以.cs 扩展名结尾。
W
wizardforcel 已提交
32 33 34 35 36 37 38 39 40 41 42 43

```
$ 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

```

W
wizardforcel 已提交
44
我们有一个简单的 C# 源文件。 稍后我们将讨论源代码。 现在,我们专注于编译过程。
W
wizardforcel 已提交
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

`simple.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());
    }
}

```

W
wizardforcel 已提交
69
C# 应用使用称为程序集的模块。 默认情况下,Mono C# 编译器仅引用三个程序集:`mscorlib.dll``System.dll``System.Xml.dll`。 必须使用编译器的命令行选项指定任何其他程序集。 在我们的简单示例中,我们需要`System.Windows.Forms.dll``System.Drawing.dll`程序集。
W
wizardforcel 已提交
70 71 72 73 74 75

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

```

W
wizardforcel 已提交
76
在这里,我们编译`simple.cs`源文件。 如果未指定输出文件名,则将获得名称等于源文件名的 exe 文件。 在我们的示例中,为`simple.exe`文件。
W
wizardforcel 已提交
77 78 79 80 81 82

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

```

W
wizardforcel 已提交
83
在这里,我们指定输出文件名。 我们编译源文件并获取`simpleexample.exe`文件。
W
wizardforcel 已提交
84 85 86 87 88 89 90 91 92 93 94 95 96

## 参考



*   [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 库的简介。