进入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不带调试的运行界面如下图:
1.1.3Windows应用程序和控制台应用程序区别
(1)在1区域默认打开的代码文件不同。控制台应用程序默认打开的是Program.cs代码文件,并且直接是代码编辑模式,而Windows应用程序默认打开的
是Form1.cs文件,并且是设计模式。
(2)我们再来看解决方案面板发现和控制台应用程序相比多了个Form1.cs,但是同样有Program.cs文件,那么好,我们打开Program.cs看看和控制台中的Program.cs文件的内容有何不同。
<1>两者都有命名空间的引用部分,但是具体引用的命名空间不同。
<2>对于类Program的定义不同,在Windows中Program被定义为静态类。
<3>主函数的签名及内容不同。Windows程序中主函数上面添加了[STAThread]指示应用程序的默认线程模型是单线程单元,同时在主函数中已经添加了三行代码。第一行代码用于启用应用程序的可视样式,第二行代码用于程序控件的默认设置,第三行代码设置程序启动的窗体实例。在第三行代码中有new Form1() 这个代码相信大家都比较熟悉,其作用是创建Form1的实例对象,那么Form1究竟是什么呢?
我们通过转到定义操作可以看到如图结果:
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.2.1界面设计
控件摆放:
(1)打开Form1的设计界面,
(2)把鼠标移到“工具箱”,工具箱会自动展开(或者通过视图菜单也可以打开工具箱面板),双击“公共控件”下的“Button”。这时,在Form1窗体上会出现一个按钮button1
(3)从工具箱中拖“Button”控件放到Form1窗体上,在Form1窗体上会出现一个按钮button2
(4)在工具箱中单击“Button”控件,然后在Form1窗体上的空白位置单击,在Form1窗体上会出现一个按钮button3
步骤(2)(3)(4)是向窗体添加控件的3种方法,其中步骤(3)及拖放的方式是最常用的。
(5)控件添加到窗体上的位置及其大小是可以直接对其进行拖拽修改的。
深层探索:
我们刚刚向Form1窗体添加了3个Button控件,那么对应Form1类的变化时什么呢?在资源管理器中我们双击打开Form1.Designer.cs代码文件。
我们添加的三个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("欢迎你!"); } } }
运行效果:
深层探索:
我们刚刚在设计界面双击button1究竟发生了什么事情呢?现在我们重新打开Form1.Designer.cs代码文件查看Windows窗体设计生成的代码。
vs自动帮我们生成了绑定button1的Click事件的相应代码。
1.3控件究竟是什么?
在Windows程序设计中,我们总是说控件,那么控件究竟是什么呢?
以Button控件为例,我们通过转到定义操作,显示代码如下:
那么可知,控件其实就是类。
控件是对数据和方法的封装,是可视化交互的载体,其本质就是具有可视界面的类。
浙公网安备 33010602011771号