进入Windows的世界

1.1进入Windows的世界

1.1.1回顾控制台应用程序

开始学习Windows程序开发之前,让我们一起重新回顾一下在C#语言学习中经常使用到的控制台应用程序。

控制台应用程序创建以后默认在(1)区域打开的是Program.cs代码文件,而且主函数中没有任何代码。在解决方案资源管理器面板中除了属性和引用之外只有一个Program.cs代码文件。按Ctrl+F5不带调试的运行界面如下图:

1.1.2创建Windows应用程序

接下来,我们新建一个Windows应用程序。

(1)打开vs2005,在菜单中依次选择“文件” – “新建” – “项目…”菜单项

(2)在模板中选择Windows应用程序

Windows应用程序默认创建以后的界面如下图:

按Ctrl+F5不带调试的运行界面如下图:

image

1.1.3Windows应用程序和控制台应用程序区别

(1)在1区域默认打开的代码文件不同。控制台应用程序默认打开的是Program.cs代码文件,并且直接是代码编辑模式,而Windows应用程序默认打开的

是Form1.cs文件,并且是设计模式。

(2)我们再来看解决方案面板发现和控制台应用程序相比多了个Form1.cs,但是同样有Program.cs文件,那么好,我们打开Program.cs看看和控制台中的Program.cs文件的内容有何不同。

image image

<1>两者都有命名空间的引用部分,但是具体引用的命名空间不同。

<2>对于类Program的定义不同,在Windows中Program被定义为静态类。

<3>主函数的签名及内容不同。Windows程序中主函数上面添加了[STAThread]指示应用程序的默认线程模型是单线程单元,同时在主函数中已经添加了三行代码。第一行代码用于启用应用程序的可视样式,第二行代码用于程序控件的默认设置,第三行代码设置程序启动的窗体实例。在第三行代码中有new Form1() 这个代码相信大家都比较熟悉,其作用是创建Form1的实例对象,那么Form1究竟是什么呢?

我们通过转到定义操作可以看到如图结果:

image image

Form1就是一个类,该类继承自Form,Form是系统中已经定义好的一个类。并且Form1的定义使用的部分类定义,分别在Form1.cs和From1.Designer.cs两个代码文件中。其中From1.Designer.cs中的代码一般是由系统自动生成的。

现在可能大家就开始有些疑问了,既然Form1他就是一个类,和我们之前在C#中定义的类一样,那么为何会有两种查看界面呢,一种是默认创建好Windows项目后打开的Form1.cs的设计界面,一种是代码编写界面(如上图)。

这就是Windows应用程序的特别之处了,从1.1.2中我们知道Windows程序运行以后是有界面的,而Form1就是一个运行以后会有界面的类,那么强大的VS就帮我们增加了一种可视化的设计模式,方便我们可视化的对Form1进行设计。其设计界面和代码编辑模式是对应的,设计界面所做的操作,vs会自动生成相应的代码。

1.2Windows程序设计的一般步骤

  1. 1.2.1界面设计

控件摆放:

(1)打开Form1的设计界面,

(2)把鼠标移到“工具箱”,工具箱会自动展开(或者通过视图菜单也可以打开工具箱面板),双击“公共控件”下的“Button”。这时,在Form1窗体上会出现一个按钮button1

(3)从工具箱中拖“Button”控件放到Form1窗体上,在Form1窗体上会出现一个按钮button2

(4)在工具箱中单击“Button”控件,然后在Form1窗体上的空白位置单击,在Form1窗体上会出现一个按钮button3

image

步骤(2)(3)(4)是向窗体添加控件的3种方法,其中步骤(3)及拖放的方式是最常用的。

(5)控件添加到窗体上的位置及其大小是可以直接对其进行拖拽修改的。

深层探索:

我们刚刚向Form1窗体添加了3个Button控件,那么对应Form1类的变化时什么呢?在资源管理器中我们双击打开Form1.Designer.cs代码文件。

image

我们添加的三个Button按钮对应在Form1中增加了3个Button类型的私有字段,并且在上面折叠起来的代码中还有对这三个对象的相关属性设置。

1.2.2代码编写

我们希望程序运行以后单击button1按钮可以出来一个欢迎的消息框。

双击button1按钮进入代码编辑界面,编写如下代码:

using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication11
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("欢迎你!");
        }
    }
}
 
运行效果:
image 
深层探索:
我们刚刚在设计界面双击button1究竟发生了什么事情呢?现在我们重新打开Form1.Designer.cs代码文件查看Windows窗体设计生成的代码。
image 
vs自动帮我们生成了绑定button1的Click事件的相应代码。
 
1.3控件究竟是什么?

在Windows程序设计中,我们总是说控件,那么控件究竟是什么呢?

以Button控件为例,我们通过转到定义操作,显示代码如下:

image

那么可知,控件其实就是类。

控件是对数据和方法的封装,是可视化交互的载体,其本质就是具有可视界面的类。

posted @ 2010-04-30 13:46  micy  阅读(456)  评论(1)    收藏  举报