




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第10章 Windows应用程序开发基础10.1 Windows应用程序10.2 窗体10.3 控件的使用10.4 菜单栏和工具栏10.5 MDI应用程序10.1 Windows应用程序10.1.1 Windows应用程序概述10.1.2 Windows应用程序的开发步骤2实际应用中,很少会直接使用控制台应用程序来编写程序或开发软件,C#在实际开发中主要有两大方面的应用,一是Windows编程,二是Web编程,三是移动互联网编程。通常所讲的Windows应用程序特指含有用户交互界面的应用程序,Windows编程也特指这类具有交互界面的可视化的编程。10.1.1 Windows10.1.1 Wi
2、ndows应用程序概述应用程序概述3Windows应用程序通常包含一个窗体或者是一个父窗体和几个子窗体,两种情况分别称之为单文档界面(SDI)和多文档界面(MDI)。窗体中可以包含各种控件,如按钮、文本框、列表框等等,还可以定制菜单、工具栏,以及对话框等。10.1.1 Windows10.1.1 Windows应用程序概述应用程序概述( (续续) )4创建项目打开Visual Studio 2012选择菜单“文件/新建/项目”打开“新建项目”对话框左侧选择“Visual C#”,在右侧选择“Windows窗体应用程序”,项目名称取为“例10-1”,点击“确定”。【例10-1】创建Windows
3、应用程序项目示例10.1.2 Windows10.1.2 Windows应用程序的开发步骤应用程序的开发步骤510.1.2 Windows10.1.2 Windows应用程序的开发步骤应用程序的开发步骤6Windows窗体应用程序开发界面中包含“工具箱”、设计区域、“解决方案资源管理器”、“属性”等窗口。 组成Windows窗体的各个控件均来自于工具箱,为方便使用,工具箱中的工具分为公共控件、容器、菜单和工具栏、数据、组件、打印、对话框等类别,最上面“所有Windows窗体”中包含了所有控件 中间部分的窗体为设计区域,可以在设计区域内设计窗体及其控件的外观。 右侧为“解决方案资源管理器”、“属
4、性”等窗口,“解决方案资源管理器”显示了项目中所有的文件。 “属性”窗口显示某窗体或控件的属性。点击窗体或控件后,属性窗口显示其属性。10.1.2 Windows10.1.2 Windows应用程序的开发步骤应用程序的开发步骤7创建好的Widows应用程序项目默认包含: 默认创建了一个窗体Form1,解决方案管理器中显示为“Form1.cs”,其下有两个文件,Form1.Designer.cs和Form1 Properties文件夹,用于定义程序集的属性信息。 “引用”文件夹,类似于6.11节介绍的自定义类库的引用 Program.cs文件,和控制台应用程序的Program.cs结构类似,是程
5、序的主入口。10.1.2 Windows10.1.2 Windows应用程序的开发步骤应用程序的开发步骤8STAThreadstatic void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(); STAThread,表示程序的COM线程模型为一个单线程单元。 Application.EnableVisualStyles(),表示程序运行后显示窗体以及窗体中的控件。10.1.2 Windows10.
6、1.2 Windows应用程序的开发步骤应用程序的开发步骤9 Application.SetCompatibleTextRenderingDefault(false),表示使用GDI方式显示文本,参数为true时,表示以GDI+方式显示文本。GDI是Graphics Device Interface的缩写,含义是图形设备接口,它的作用是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。GDI+是GDI的改进版,从Windows XP操作系统开始引入。 Application.Run(new Form1(),表示实例化Form1类并运行,使得运行后首先看到Form1窗体。1
7、0.1.2 Windows10.1.2 Windows应用程序的开发步骤应用程序的开发步骤10Form1.cs文件用来存放用户代码。public partial class Form1 : Form public Form1() InitializeComponent(); 类Form1是一个分部类,使用partial修饰。另外一部分代码在Form1.Designer.cs中。 InitializeComponent()表示初始化操作,方法定义在Form1.Designer.cs中。10.1.2 Windows10.1.2 Windows应用程序的开发步骤应用程序的开发步骤11Form1.De
8、signer.cs文件中放置的是负责窗体外观的代码,事件的声明也放在该文件中,它由设计器自动生成和维护,一般无需对它进行更改。Form1.Designer.cs文件和Form1.cs文件共同定义了类Form1。10.1.2 Windows10.1.2 Windows应用程序的开发步骤应用程序的开发步骤12调试运行与控制台应用程序一样,点击工具栏上的“启动调试”按钮,或者按F5键即可运行调试Windows应用程序。启动运行后,将运行Form1窗体。点击窗体的关闭按钮,或者工具栏的“停止调试”按钮,均可停止应用程序的运行。10.1.2 Windows10.1.2 Windows应用程序的开发步骤应
9、用程序的开发步骤1310.2 窗体10.2.1 窗体属性设置10.2.2 窗体事件14打开Form1的设计界面,点击窗体,在右侧的“属性”栏中,列出了窗体的属性。窗体的属性较多,有布局、窗口样式、行为、焦点、可访问性、设计、数据、外观和杂项九大类,设置方法都比较简单。可以尝试改变窗体的每个属性,观察窗体的变化。无论是查看属性还是查看后面介绍的事件,首先都必须选中窗体,即在窗体设计界面中点击一下窗体,这样,显示的属性和事件才是窗体的属性和事件。对于本章后面介绍的控件,同样也是如此,首先选中目标控件,再查看其属性或事件。10.2.1 10.2.1 窗体属性设置窗体属性设置15在窗体“属性”栏的最上
10、方有一个“ ”图标的按钮,点击此按钮,就会显示所有的窗体事件。窗体事件也比较多,常用的有Click、Load、FormClosed等事件。窗体Click事件的添加步骤:点击窗体设计界面中的窗体,在右侧的“属性”栏顶部点击“事件”按钮(闪电图标),打开事件列表。10.2.2 10.2.2 窗体事件窗体事件16找到Click一行,在此行的左单元格或者右单元格双击,将自动转至Form1的代码界面。同时,自动添加了如下的方法代码:private void Form1_Click(object sender, EventArgs e) 方法名称为Form1_Click,方法将在单击窗体时执行,也称事件的
11、触发。 方法的参数sender是触发事件的事件源,此处就是Form1对象。 方法的参数e是触发时的事件参数,此处的e将包含鼠标点击的位置、点击的是鼠标哪个按键等参数信息。10.2.2 10.2.2 窗体事件窗体事件( (续续) )17 打开Form1.Designer.cs文件,会看到有如下一行代码:this.Click += new System.EventHandler(this.Form1_Click); 可见,通过事件委托,为窗体的单击事件绑定了Form1_Click方法。这也是Windows编程中所有事件触发的方式,这些都由设计器自动完成,无需程序员编写。在Form1_Click方法
12、中添加代码,例如:MessageBox.Show(您点击了窗体,点击位置为 + (MouseEventArgs)(e).Location); 运行调试程序【例10-2】窗体Click事件示例10.2.2 10.2.2 窗体事件窗体事件( (续续) )1810.3 控件的使用10.3.1 添加控件10.3.2 控件的定位、对齐和调整大小10.3.3 删除控件10.3.4 控件的基本属性10.3.5 控件的常用事件10.3.6 控件使用实例19控件是窗体的基本组成单位,通过控件可以高效地开发Windows应用程序。Windows应用程序控件分为基本控件和高级控件。基本控件有按钮、文本类控件、选择类
13、控件、容器类控件以及其它常用控件。向窗体中添加控件可以通过多种方法进行:点击添加默认大小的控件 在工具箱中点击所要添加的控件,然后回到窗体中,此时鼠标会变成十字状,且十字的右下方会显示控件的图标,在窗体中点击鼠标左键,就会添加出默认大小的控件。10.3.1 10.3.1 添加控件添加控件20绘制特定大小的控件 在工具箱中点击所要添加的控件,然后在窗体中按下鼠标左键,向右下方拖动,松开鼠标,就会绘制出特定大小控件。拖拽控件至窗体中 鼠标点住工具箱中的控件不松开,拖拽到窗体中相应位置,再松开鼠标,会添加一个默认大小的控件。双击工具箱中控件 在工具箱中的控件上双击,会迅速地在窗体上添加一个默认大小的
14、控件。10.3.1 10.3.1 添加控件添加控件( (续续) )21窗体中控件的排列、对齐影响着最终的界面友好度,在Vistual Studio中,可以利用辅助线来方便的做到定位、对齐和调整大小。辅助线会在多种情况下出现。10.3.2 10.3.2 控件的定位、对齐和调整大小控件的定位、对齐和调整大小22单个控件的定位在窗体中添加一个Button控件,将按钮拖动到靠近窗体的任何一个边缘或任何一个角落上时,均会出现辅助线,到达这个位置附近时,按钮会主动停靠上去。10.3.2 10.3.2 控件的定位、对齐和调整大小控件的定位、对齐和调整大小23多个控件定位在窗体中再添加一个Button控件,将
15、其中一个按钮拖到另一个按钮附近时,将会出现对齐的辅助线。10.3.2 10.3.2 控件的定位、对齐和调整大小控件的定位、对齐和调整大小24当两个控件的大小不一致,想要调整一个与另一个大小相同,可以先依据辅助线将两个控件以一条边对齐,再拖动控件上的八个控制点中的某个控制点,调整控件的大小,当此控件边缘与另一个控件的边缘接近时,也会出现辅助线,并且会主动调整到辅助线位置。10.3.2 10.3.2 控件的定位、对齐和调整大小控件的定位、对齐和调整大小25精确控制控件的大小可以通过控件的属性设置宽、高度。多个控件的对齐还可以使用“布局”工具栏来完成,通过这些工具可以轻松实现各种对齐、大小调整、平分
16、间隔距离等等。10.3.2 10.3.2 控件的定位、对齐和调整大小控件的定位、对齐和调整大小26选中控件,然后按键盘的Delete键即可删除控件。也可通过鼠标右击控件弹出的快捷菜单删除控件。10.3.3 10.3.3 删除控件删除控件27每个控件都具有很多属性,不同控件间也有很多共有的属性,这是因为大多数控件继承自System.Windows.Forms.Control类。Control类常见的属性及其功能。10.3.4 10.3.4 控件的基本属性控件的基本属性28名称名称功能功能Anchor当容器大小改变时,控件做出何种相应,如锁定边界BackColor控件的背景色BackgroundI
17、mage 控件中显示的背景图像Bottom控件下边缘与其容器的工作区上边缘之间的距离(以像素为单位)Dock设置控件停靠到其父控件的哪个边缘Enabled指定控件是否可以对用户交互作出响应Font设置控件显示的文字的字体10.3.4 10.3.4 控件的基本属性控件的基本属性29名称名称功能功能ForeColor设置控件的前景色Height设置控件的高度Left控件左边缘与其容器的左边缘之间的距离(以像素为单位)Location设置控件的左上角相对于其容器的左上角的坐标Margin设置控件之间的间距Name设置控件的名称Padding设置控件内的边缘空白大小Parent指定控件的父容器Righ
18、t控件右边缘与其容器的左边缘之间的距离(以像素为单位)Size设置控件的高度和宽度TabIndex设置控件在其容器中的 Tab 键顺序Text控件上显示的文字10.3.4 10.3.4 控件的基本属性控件的基本属性30名称名称功能功能Top控件上边缘与其容器的上边缘之间的距离(以像素为单位)Visible设置控件是否可见Width设置控件的宽度控件的事件类似于窗体的事件,都是由用户操作时触发。Control类中包含了多数控件的常用事件。Control类中常用的事件10.3.5 10.3.5 控件的常用事件控件的常用事件31名称名称说明说明Click在单击控件时发生DoubleClick在双击控
19、件时发生DragDrop在完成拖放操作时发生DragEnter在将对象拖入控件的边界时发生DragLeave在将对象拖出控件的边界时发生DragOver在将对象拖到控件的边界上发生GotFocus在控件获得焦点时发生10.3.5 10.3.5 控件的常用事件控件的常用事件32名称名称说明说明KeyDown在控件有焦点的情况下按下键时发生KeyPress在控件有焦点的情况下按下键时发生KeyUp在控件有焦点的情况下释放键时发生LostFocus当控件失去焦点时发生MouseClick在鼠标单击该控件时发生MouseDoubleClick当用鼠标双击控件时发生MouseDown当鼠标指针位于控件上
20、并按下鼠标键时发生MouseEnter在鼠标指针进入控件时发生MouseHover在鼠标指针停放在控件上时发生MouseLeave在鼠标指针离开控件时发生MouseMove在鼠标指针移到控件上时发生MouseUp在鼠标指针在控件上并释放鼠标键时发生MouseWheel在移动鼠标滚轮并且控件有焦点时发生【例10-3】控件使用示例10.3.6 10.3.6 控件使用实例控件使用实例3310.4 菜单栏和工具栏10.4.1 菜单栏和工具栏概述10.4.2 菜单栏10.4.3 工具栏34Visual Studio 2012中,分别用MenuStrip和ToolStrip控件创建菜单和工具栏。其中,Me
21、nuStrip直接派生于ToolStrip。除了MenuStrip和ToolStrip控件之外,还有:StatusStrip控件用来创建状态栏ContextMenuStrip控件用来创建右键点击相关控件后出现的快捷菜单ToolStripContainer控件用来为窗体四周提供一个面板,面板中均可包含菜单、工具栏和状态栏10.4.1 10.4.1 菜单栏和工具栏概述菜单栏和工具栏概述35创建标准菜单:新建Windows应用程序项目“例10-4”。从工具箱中拖放一个MenuStrip控件到窗体设计界面中。单击选中MenuStrip控件,点击控件右上方的三角箭头,弹出“MenuStrip任务”窗口。
22、点击“插入标准项”,菜单中就会创建出“文件”、“编辑”、“工具”、“帮助”四个菜单以及相应的菜单选项10.4.2 10.4.2 菜单栏菜单栏36创建自定义菜单:新建Windows应用程序项目“例10-5”。从工具箱中拖放一个MenuStrip控件到窗体设计界面中。单击选中菜单,在属性面板中将其Name属性更改为menuStrip1。单击菜单的“请在此处键入”文本框,在文本框中键入“编辑(&E)”。单击选中“编辑”菜单项,在属性面板中将其Name属性更改为menuItem1。 &E表示此菜单项的快键键为“Alt+E”。10.4.2 10.4.2 菜单栏(续)菜单栏(续)37 也可
23、以将鼠标悬停至“请在此处键入”文本框区域内,点击右侧的下拉列表框箭头,选择“MenuItem”,将创建一个名为“toolStripMenuItem1”的菜单项。单击此菜单项文字或设置其Text属性可以更改菜单项文字。 从下拉列表框的选项可知,菜单项也可以是ComboBox和TextBox,直接键入文字时,默认为MenuItem类型。单击选中“编辑”菜单项,在其下方的“请在此处键入”文本框内键入“撤销(&U)”,创建“撤销”菜单项。单击选中“撤销”菜单项,在属性面板中将其Name属性设置为menuItem11,将ShortcutKeys属性设置为Ctril+Z,为菜单项创建快捷键。10.
24、4.2 10.4.2 菜单栏(续)菜单栏(续)38创建其余菜单项。在“重复”、“粘贴”菜单项下方的菜单项文字中键入“-”,可以创建一个横线分隔符,也可以单击“请在此处键入”文本框右侧的下拉列表框,选择“Separator”创建分隔符。10.4.2 10.4.2 菜单栏(续)菜单栏(续)39菜单属性与菜单项的属性菜单常用属性10.4.2 10.4.2 菜单栏(续)菜单栏(续)40名称名称说明说明Dock获取或设置菜单停靠在父容器的哪一边缘,默认为顶部GripStyle获取或设置菜单左侧四个垂直排列的点(移动手柄)是否可见,即工具栏是否可以移动ImageScalingSize获取或设置菜单项所用图
25、标的大小LayoutStyle获取或设置菜单的布局方式,默认为水平Name获取或设置菜单的名称ShowItemToolTips获取或设置是否显示菜单项的提示对于菜单的项,有其自己的一系列属性,菜单项的类型不同,其属性也不尽相同。常用的属性:10.4.2 10.4.2 菜单栏(续)菜单栏(续)41名称名称说明说明DisplayStyle获取或设置菜单项的图像和文本的呈现模式Image获取或设置菜单项的图标Name获取或设置菜单项的名称Text获取或设置菜单项显示的文本ToolTipText获取或设置菜单项的提示信息菜单的事件与菜单项的事件菜单最常用的事件是ItemClicked,点击菜单中的任一
26、项后触发该事件为“编辑”菜单添加事件: 双击菜单,自动创建并跳转至ItemClicked事件。或者选中菜单,在属性面板的事件中找到ItemClicked事件并双击,创建ItemClicked事件。 在事件中键入代码,如:MessageBox.Show(您选择了“ + e.ClickedItem.Text + ”菜单项!); 运行程序,点击“编辑”。10.4.2 10.4.2 菜单栏(续)菜单栏(续)42菜单项最常用事件是Click,点击某个菜单项后触发该事件为“撤销”菜单项添加事件: 由于点击菜单项后,首先要触发菜单的ItemClicked事件,为测试方便,若菜单设置了ItemClicked事
27、件,将事件内的代码注释。 双击“撤销”菜单项,自动创建并跳转至Click事件。或者,选中菜单项,在属性面板的事件中找到Click事件并双击,创建Click事件。 在事件中键入代码:MessageBox.Show(您选择了“撤销”菜单项!); 运行程序,点击“编辑/撤销”10.4.2 10.4.2 菜单栏(续)菜单栏(续)43创建标准工具栏:新建Windows应用程序项目“例10-6”。从工具箱中拖放一个ToolStrip控件到窗体设计界面。单击选中ToolStrip控件,点击控件右上方的三角箭头,弹出“ToolStrip任务”窗口。点击“插入标准项”,工具栏中就会创建出“新建”、“打开”、“保
28、存”、“打印”等工具。10.4.310.4.3 工具栏工具栏44创建自定义工具栏:新建Windows应用程序项目“例10-7”。从工具箱中拖放一个ToolStrip控件到窗体设计界面中。选中工具栏,在属性面板中将其Name属性更改为toolStrip1。点击当前工具栏中的下拉列表框,即可创建一个工具栏项。 也可点击ToolStrip控件中下拉列表框的下拉箭头,选择“Button”创建一个工具栏选项。 从选项中可见,工具栏项的类型有Button、Label、SplitButton、DropDownButton、Separator、ComboBox、TextBox和ProgressBar,其中,S
29、eparator是工具栏项之间的分隔符。10.4.310.4.3 工具栏(续)工具栏(续)45单击选中创建的工具栏项,在属性面板中设置其Name属性为toolStripButton1,设置ToolTipText属性为“新建”。10.4.310.4.3 工具栏(续)工具栏(续)46工具栏属性与工具栏项的属性常用的工具栏属性:10.4.310.4.3 工具栏(续)工具栏(续)47名称名称说明说明Dock获取或设置工具栏停靠在父容器的哪一边缘,默认为顶部GripStyle获取或设置工具栏左侧四个垂直排列的点(移动手柄)是否可见,即工具栏是否可以移动ImageScalingSize获取或设置工具栏项所
30、用图标的大小LayoutStyle获取或设置工具栏的布局方式,默认为水平Name获取或设置工具栏的名称ShowItemToolTips获取或设置是否显示工具栏项的提示对于工具栏的项,有其自己的一系列属性,工具栏项的类型不同,其属性也不尽相同。常用的属性:10.4.310.4.3 工具栏(续)工具栏(续)48名称名称说明说明DisplayStyle获取或设置工具栏项的图像和文本的呈现模式Name获取或设置工具栏项的名称Text获取或设置工具栏项上的文本ToolTipText获取或设置工具栏项的提示信息工具栏事件与工具栏项的事件工具栏最常用的事件是ItemClicked,点击工具栏中的任一项后触发该事件为工具栏创建事件: 双击工具栏,自动创建并跳转至ItemClicked事件。或者,选中工具栏,在属性面板的事件中找到ItemClicked事件并双击,创建ItemClicked事件。 在事件中键入代码:MessageBox.Show(您点击了“ + e.ClickedItem.ToolTipText + ”工具栏项!); 运行程序,点击“新建”工具栏10.4.310.4.3 工具栏(续)工具栏(续)49工具栏项最常用事件是Click,点击某个工具栏项后触发该事件为“新建”工具栏项创建事件: 由于点击工具
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人装修委托书
- 双方设备合作合同范本
- 南瓜订货合同范例
- 断层解剖复习题+答案
- 合伙买车合作协议合同范例
- 七年级下学期语文总结
- 兼职游泳教练合同范本
- 保洁合同范本(完美版)
- 厂里员工租房合同范本
- 《赠刘景文》和《山行》古诗的教学反思
- 2025-2030年中国pcb行业竞争格局及未来投资趋势分析报告新版
- 2025年年食堂工作总结和年工作计划例文
- 船舶制造设施安全生产培训
- 全国驾驶员考试(科目一)考试题库下载1500道题(中英文对照版本)
- TSG 07-2019电梯安装修理维护质量保证手册程序文件制度文件表单一整套
- 2025深圳劳动合同下载
- 标准和计量管理制度范文(2篇)
- 孕前口腔护理保健
- 《民航服务与沟通学》课件-第1讲 服务与民航服务的概念
- 大型养路机械司机(打磨车)高级工技能鉴定考试题库(含答案)
- 车辆使用不过户免责协议书范文范本
评论
0/150
提交评论