您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > ch10-Windows应用程序开发解析
面向对象的程序设计C#山东科技大学测绘学院第10章Windows应用程序开发本章要点:Windows窗体开发基础常用Windows控件Windows菜单设计工具栏与状态栏设计通用对话框编程GDI+编程面向对象的程序设计C#山东科技大学测绘学院10.1Windows窗体编程10.1.1.NETFramework窗体编程相关基类.NETFramework提供了一系列与窗体编程相关的类,用来供开发人员使用。这些类主要包含于System.Windows.Forms命名空间中。其中与窗体和控件相关的基类见下表。类名称简介Object所有类的基类MarshalByRefObject允许在支持远程处理的应用程序中跨应用程序域边界访问对象。Component提供IComponent接口的基实现并启用应用程序之间的对象共享。Control定义控件的基类,控件是带有可视化表示形式的组件。Form表示组成应用程序的用户界面的窗口或对话框。面向对象的程序设计C#山东科技大学测绘学院10.1Windows窗体编程10.1.1.NETFramework窗体编程相关基类相关类的继承关系如下图所示:Control类为定义窗体及控件的基类。Form为窗体类,用来构造窗体,其他标准Windows控件类均派生于Control类ObjectMarshalByRefObjectComponentControlForm及控件类面向对象的程序设计C#山东科技大学测绘学院10.1Windows窗体编程10.1.2添加Windows窗体(1)使用VisualStudio2005开发环境添加窗体新建或打开一个工程,右击“解决方案管理器”面板中的项目名称,在弹出的快捷菜单中选择“添加”|“新建项”菜单项,弹出“添加新项”对话框,在“模板”栏中选择“Windows窗体”输入相应名称,单击“确定”按钮完成添加操作。该过程将自动产生一些相关代码,初学者可以暂时不去考虑这些内容,最好也不要修改该部分代码。面向对象的程序设计C#山东科技大学测绘学院10.1Windows窗体编程10.1.2添加Windows窗体(2)使用代码创建窗体使用代码创建窗体需要由Form类派生一个子类,然后实例化该派生类,完成窗体创建工作。示例代码如下:publicclassForm1:Form{publicForm1(){InitializeComponent();//不要忘记这句话this.Size=newSize(400,250);//设置窗体大小this.Text=使用代码创建窗体;//设置窗体标题}staticvoidMain(){Application.Run(newForm1());//使用new实例化一个Form1对象}}面向对象的程序设计C#山东科技大学测绘学院10.1Windows窗体编程10.1.3添加控件(1)使用VisualStudio2005开发环境添加控件打开“工具栏”面板,讲目标控件拖入窗体中的合适位置即可。(2)使用代码添加控件使用代码在窗体中添加一个按钮。.NETFramework提供了System.Windows.Forms.Button类供开发人员实例化标准按钮对象,因此创建按钮的过程既是由Button类实例化对象的过程。此时,窗体被看作是容器,包含按钮控件,故设计时需将按钮对象作为窗体类的一个成员。在实例化窗体对象的同时实例化按钮对象,即可完成添加按钮操作。面向对象的程序设计C#山东科技大学测绘学院10.1Windows窗体编程10.1.4布局控件当窗体需要包含有多个不同种类的控件时,要要布置好各个控件的位置、大小及顺序关系。即对各个控件进行布局。可以使用以下四种属性来布局控件:(1)Location,设置控件相对于窗体左上角的X与Y坐标;(2)Size,设置控件本书的高度和宽度;(3)Anchor,把控件附着在窗体的一个或多个边框上;(4)Dock,设定控件相对于窗体某个边框的停靠方式。Location及Size都使用绝对值来设定控件的位置与大小,当窗体大小改变时,控件的大小及位置无法随窗体的变化而自动等比例的变化,造成布局的混乱。为了解决这个问题,C#为控件提供了Dock属性。Dock属性的取值于DockStyle枚举类型成员面向对象的程序设计C#山东科技大学测绘学院10.1Windows窗体编程10.1.4布局控件成员名称说明Bottom该控件的下边缘停靠在其包含控件的底部。Fill控件的各个边缘分别停靠在其包含控件的各个边缘,并且适当调整大小。Left该控件的左边缘停靠在其包含控件的左边缘。None该控件未停靠。(默认值)Right该控件的右边缘停靠在其包含控件的右边缘。Top该控件的上边缘停靠在其包含控件的顶端。面向对象的程序设计C#山东科技大学测绘学院10.1Windows窗体编程10.1.5设置控件属性选中目标控件,在“属性面板”中可以设置其对应的属性值。在代码中可以利用如下方式设置控件的属性:button1.Name=“button1”;button1.Size=newSize(117,32);button1.Dock=DockStyle.Bottom;button1.Text=第一个按钮;其中,button1为目标控件ID面向对象的程序设计C#山东科技大学测绘学院10.1Windows窗体编程10.1.6响应控件事件要使程序完成一定功能,需要响应控件的特定事件,如单击、移动等。在VS2005环境中,选中目标控件,双击,即可添加控件的click事件,并自动切换到该事件的响应函数中。在代码中添加如下内容,即可完成响应控件事件工作://响应Click事件button1.Click+=newSystem.EventHandler(button1_Click);同时,需要添加button1_Click方法,作为事件的响应函数。面向对象的程序设计C#山东科技大学测绘学院10.2常用控件10.2.1标签和基于按钮的控件标签控件(Label)是工具箱中最简单的控件,通常用来显示一些描述性文字。且显示内容通常在其声明周期内固定不变。Label控件的最常用属性为Text属性,用来指定在Label控件中显示的内容,可以通过设置Label控件的Color、Font、Style等属性来改变显示的效果。.NET支持三种类型的按钮:按钮、单选框以及复选框,这三种按钮都继承于ButtonBase类。三种按钮分别对应于Button、CheckBox、RadioBox类,这些类包含于System.Windows.Forms命名空间中。面向对象的程序设计C#山东科技大学测绘学院10.2常用控件10.2.1标签和基于按钮的控件(1)button控件按钮控件(Button)允许用户通过单击来执行操作。当用户单击按钮时,即调用Click事件处理程序。可将代码放入Click事件处理程序来执行所选择的任意操作。按钮上显示的文本由Text属性指定。如果文本超出按钮宽度,则换到下一行。但是,如果控件无法容纳文本的总体高度,则将剪裁文本。按钮(Button)控件还可以使用Image和ImageList属性显示图像(2)单选框和复选框控件二者都允许用户从一系列的选项中选择,差别在于在一系列选项中单选框之间是“互斥”的,即只能有一个被选中;各个复选框选项之间相互无影响,即可有多个被选中。面向对象的程序设计C#山东科技大学测绘学院10.2常用控件10.2.2文本框控件文本框控件负责为用户提供一个编辑数据的接口,也可以用来显示数据。.NETFrameword提供了TextBoxBase类支持文本框操作。该类为抽象类,由其派生的两个子类为:TextBox和RichTextBox分别对应于TextBox和RichTextBox控件10.2.3列表框控件列表控件用于向用户提供多选择项的动态列别。C#提供了两种类型的列表控件:ListBox控件和ComboBox控件,二者都可以完成列表选择任务,但各有自己的属性。二者均由ListControl基类派生而来,ListControl类继承于Control类。其中,ListBox控件列表框(ListBox)用于在滚动的窗口显示一系列的条目。如果列表框中的条目多于在一个窗口中所能容纳的数目,则自动添加滚动条面向对象的程序设计C#山东科技大学测绘学院10.2常用控件10.2.3列表框控件ComboBox列表框控件显示与一个ListBox组合的编辑字段,使用户可以从列表中选择或输入新文本。ComboBox的默认行为是显示一个编辑字段,该字段附带一个隐藏的下拉列表。DropDownStyle属性确定要显示的组合框的样式。可以输入一个值,该值指示允许以下情况:简单的下拉列表(始终显示列表)、下拉列表框(文本部分不可编辑,并且必须选择一个箭头才能查看下拉列表框)或默认下拉列表框(文本部分可编辑,并且用户必须按箭头键才能查看列表)。若要始终显示用户不能编辑的列表,建议使用ListBox控件。面向对象的程序设计C#山东科技大学测绘学院10.2常用控件10.2.4日期时间相关控件在Windows应用程序中日期时间相关控件是必不可少的。相关控件包括定时器Timer控件、DateTimePicker控件以及MonthCalendar控件。(1)Timer控件定时器(Timer)控件用于以用户定义的事件间隔触发事件。Windows计时器是为单线程环境设计的,其中,UI线程用于执行处理。它要求用户代码有一个可用的UI消息泵,而且总是在同一个线程中操作,或者将调用封送到另一个线程。当Enabled属性设置为true且Interval属性大于0时,将引发Tick事件,引发的时间间隔由Interval属性控制,该属性以毫秒为单位。若应用程序中实现了一个定时器,在程序执行结束时需要调用Dispose()方法,释放系统资源。面向对象的程序设计C#山东科技大学测绘学院10.2常用控件10.2.4日期时间相关控件(2)DataTimerPick控件DateTimePicker控件用来让用户选择日期和时间,以及按指定的格式显示此日期/时间。通过设置MinDate和MaxDate属性,可以限制可选择的日期和时间。DataTimePicker控件类继承于Control类.(3)MonthCalendar控件MonthCalendar控件与DateTimePicker控件类似,显示效果与DateTimePicker控件使用的下拉式日历一致,如图所示:面向对象的程序设计C#山东科技大学测绘学院10.2常用控件10.2.5TreeView与ListView(1)TreeView控件TreeView控件利用层次结构向用户展示一系列相关信息。利用TreeView控件,可以把相关信息组织成易于管理的块。在TreeView控件中显示的每个数据项(节点)都对应于一个TreeNode对象。该对象的Nodes属性为一个集合,包含该对象下属的所有子节点。利用集合的相关操作如Add()、Remove()等可以对一个节点所包含子节点进行编辑。TreeView控件中每个节点都有一个标题和两个可选图像,这两个图像分别用来图形化节点的选中或未被选中状态,使用图像需ImageList控件支持。由Windows资源管理器可知,在运行时TreeView控件的层次结构中任何节点都可以扩展或收缩显示或隐藏它的子节点。面向对象的程序设计C#山东科技大学测绘学院10.2常用控件10.2.5TreeView与ListView(2)ListView控件ListView控件用来显示项列表,这些项带有项文本和图标(可选)来标识项的类型。例如,Windows资源管理器的文件列表就与ListView控件的外观相似。ListViewItem类表示ListView控件中的项。列表中显示的项可以用四种不同视图显示,分别为:使用大图标、使用小图标、作为一个列表、作为一个表格等。ListView可以使用CheckBoxes属性显示复选框,以使用户可以选中要对其执行
本文标题:ch10-Windows应用程序开发解析
链接地址:https://www.777doc.com/doc-4674162 .html