进入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控件为例,我们通过转到定义操作,显示代码如下:
那么可知,控件其实就是类。
控件是对数据和方法的封装,是可视化交互的载体,其本质就是具有可视界面的类。
转载于:https://www.cnblogs.com/micy/archive/2010/04/30/1725012.html
进入Windows的世界相关推荐
- Windows异常世界历险记(五)——VC6中结构化异常处理机制的反汇编分析(下)
在本系列的上一篇文章Windows异常世界历险记(四)--VC6中结构化异常处理机制的反汇编分析(中)中,给出了针对VC6的异常处理机制进行逆向后得到的伪码.在本文中,我们仍然以之前写的小程序为例,通 ...
- 回归Dos操作的快感,进入PowerShell世界
概述 写下本篇文章源于参加Tech.Ed的一场关于Window PowerShell的课程.虽然之前也经常关注,但从没有亲自体验过.Windows PowerShell 是一种新的命令行外壳和脚本语言 ...
- 回归Dos操作的快感,进入PowerShell世界 (转)
概述 写下本篇文章源于参加Tech.Ed的一场关于Window PowerShell的课程.虽然之前也经常关注,但从没有亲自体验过.Windows PowerShell 是一种新的命令行外壳和脚本语言 ...
- Google Chrome 正在走 Windows 的老路
Google Chrome将成为第二个Windows:人人都在使用,但人人都不喜欢. 作者 | Matt Hanson 译者 | 弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以 ...
- Windows 8实例教程系列 - 开篇
2012年10月26日,微软发布Windows 8操作系统以及自主品牌平板电脑Surface,Windows作为世界上最流行的操作系统,发布一周内,下载量超过400万.毋庸置疑 Windows Sto ...
- 实战Windows Azure:微软云计算平台技术详解
实战Windows Azure:微软云计算平台技术详解 徐子岩 编著 ISBN978-7-121-14547-6 2011年10月出版 定价:69.00 元 16开 440页 宣传语:什么是真正 ...
- BUILD大会感想:Windows 8 启动开发者新纪元(首发-程序员10月刊)
9月13日-16日在加州阿纳海姆会议中心,来自世界各地的超过5000名开发者齐聚一堂,不时为BUILD大会上Windows 8新特性的主题演讲发出阵阵掌声.这个传统上微软为其开发者举办的名为Profe ...
- Windows远程桌面连接的入门宝典
在Windows的世界中不论你是普通的桌面用户,还是企业级的用户,都有一项功能,那就是远程桌面连接.不论是在WINDOWS 2000 SERVER,WINDOWS XP.WINDOWS 2003.WI ...
- 一分钟,让你的 Windows 学会 OS X 的「一指禅」:Seer
Windows 心想:还好这个姿势简单易学. 我能在键盘上找到的最有安全感的按键一定是「空格键」.作为一个在键盘上最为宽大的按键,不给它多安排一点合适的任务是说不过去的. 在 OS X 的 Finde ...
最新文章
- git push VS git fetch
- [干货]我如何考察面试者的机器学习水平
- 解决工控网络通信协议威胁的实践
- oracle阻塞查询,oracle 查询阻塞的sql语句
- UVA-10954 Add All
- 机器学习入门系列四(关键词:BP神经网络)
- 12月7日学习内容整理:ORM单表操作
- 抗击肺炎:新冠肺炎疫情数据可视化及疫情预测分析
- [Matlab] 符号积分求对流扩散方程在给定初始条件下的一维解
- Apache Ant 简介和配置
- matlab角点坐标获取,MatLab角点检测(harris经典程序) | 学步园
- python基础3之文件操作、字符编码解码、函数介绍
- Error - ORA-26028
- Windows核心编程_PE文件格式详细介绍
- Java测试用例简介
- html坦克大战js代码包,js实现坦克大战游戏
- 关于ESAPI获取资源文件问题
- ps如何调出参考线?
- MT6761处理器介绍
- 辅材先生之打开传统向互联网+辅材这把锁
热门文章
- 《智慧书》格言211-220
- DCD DSR DTR RTS CTS表示什么意思
- 2008年5月小记(??, #, DataContractJsonSerializer, CTE Ranking top)
- cambridge official online course store
- 三个免费图片网站:特别适合场景图
- building a software for what?
- what you want from a relationship?
- ARMV7,ARMV8
- 《F4+2》—团队项目系统设计改进与详细设计
- 在ubuntu16.04.1配置qemu-img,qemu-nbd