资源描述
第6章Windows窗体应用程序,6.1.1窗体应用程序的创建、组成和运行,本小节通过一个实例讲解Windows窗体应用程序的创建过程。【*.cs】是窗体对应的代码文件,与窗体及控件有关的事件、方法等代码都可以写在这个文件中或者在这个文件中调用。【*.Designer.cs】文件是与窗体和控件显示有关的代码文件,一般不要修改此文件,主要包含InitializeComponent()方法。【Program.cs】中包含程序的入口函数Main()主函数。,6.1.2属性、事件和方法,Form窗体和控件提供了大量的属性用来修改改观。比如Name属性用来修改控件名称,Text属性用来修改显示控件上显示的文字等。事件是面向对象编程中的一个重要概念。通俗地理解,事件指在某个对象内部发生了某些事情,而其它对象可以引发这些事情的发生。比如,当用鼠标单击窗体,则可以引发窗体发生一些事情,在VS2008中,叫做窗体的Click事件。,6.2.1控件常用属性和事件,1控件常用属性Windows应用程序中所有控件都会有共同常用的属性:Name就是这个控件的名字.Text就是这个控件上显示的信息。当Visible属性为True表示这个控件在程序运行时显示出来,否则为False则表示程序运行时该控件不显示。当Enabled属性为True表示这个控件可用,否则该控件为灰色,不能使用。,6.2.1控件常用属性和事件,2控件的事件Click:在单击控件时引发。在某些情况下,这个事件也会在用户按下回车键时引发。DoubleClick:在双击控件时引发。处理某些控件上的Click事件,如Button控件,表示永远不会调用DoubleClick事件。DragDrop:在完成拖放操作时引发。换言之,当一个对象被拖到控件上,然后用户释放鼠标按钮后,引发该事件。DragEnter:在被拖动的对象进入控件的边界时引发。DragLeave:在被拖动的对象移出控件的边界时引发。DragOver:在被拖动的对象放在控件上时引发。KeyDown:当控件有焦点时,按下一个键时引发该事件,这个事件总是在KeyPress和KeyUp之前引发。KeyPress:当控件有焦点时,按下一个键时发生该事件,这个事件总是在KeyDown之后、KeyUp之前引发。KeyDown和KeyPress的区别是KeyDown传送被按下的键的键盘码,而KeyPress传送被按下的键的char值。,6.2.1控件常用属性和事件,2控件的事件KeyUp:当控件有焦点时,释放一个键时发生该事件,这个事件总是在KeyDown和KeyPress之后引发。MouseDown:在鼠标指针指向一个控件,且鼠标按钮被按下时引发。这与Click事件不同,因为在按钮被按下之后,且未被释放之前引发MouseDown。MouseMove:在鼠标滑过控件时引发。MouseUp:在鼠标指针位于控件上,且鼠标按钮被释放时引发。Paint:绘制控件时引发。Validated:当控件的CausesValidation属性设置为true,且该控件获得焦点时,引发该事件。它在Validating事件之后发生,表示有效性验证已经完成。Validating:当控件的CausesValidation属性设置为true,且该控件获得焦点时,引发该事件。,6.2.1控件常用属性和事件,添加事件处理程序有2种基本方式:第一种是双击控件,进入控件默认事件的处理程序。这个事件对于不同的控件来说是不同的。如果该事件就是我们需要的事件,就可以开始编写代码。如果需要的事件与默认事件不同,则使用第二种方法来处理这种情况。另一种方法是使用Properties窗口(属性窗口)中的Events列表,单击Properties窗口的闪电图标按钮,就会显示Events列表。其中灰显的事件就是控件的默认事件。要给事件添加处理程序,只需在Events列表中双击该事件,就会生成给控件订阅该事件的代码,以及处理该事件的方法签名。,6.2.2控件的锚定和停靠,控件的锚定和停靠是通过Anchor和Dock属性实现的。Anchor属性用于指定在用户重新设置窗口的大小时控件该如何响应。可以指定如果控件重新设置了大小,就根据控件的边界锁定它,或者其大小不变,但根据窗口的边界来锚定它的位置。Dock属性用于指定控件应停放在容器的边框上。如果用户重新设置了窗口的大小,该控件将继续停放在窗口的边框上。例如,如果指定控件停放在容器的底部边界上,则无论窗口的大小如何改变,该控件都将改变大小,或移动其位置,确保总是位于屏幕的底部。,6.3.1标签控件,Label是标准的Windows标签。LinkLabel类似于标准标签,但以Internet链接的方式显示(即超链接形式)。,6.3.2文本框控件,文本框的主要用途是让用户输入文本,用户可以输入任何字符,也可以限制用户只输入数值。.NETFramework内置了两个基本控件来提取用户输入的文本:TextBox和RichTextBox。这两个控件都派生于基类TextBoxBase。,6.3.3单选控件,RadioButton又称单选按钮,其在工具箱中的图标为,单选按钮通常成组出现,用于提供两个或多个互斥选项,即在一组单选钮中只能选择一个。,6.3.4复选框控件,CheckBox是复选框控件,使用非常普遍。CheckedListBox控件又称复选列表框。,6.3.5列表控件,列表框用于显示一组字符串,可以一次从中选择一个或多个选项。如果在设计期间,不知道用户要选择的数值个数,或者列表中的值非常多,都应考虑使用列表框。组合框是组成Windows窗口常见的控件之一,Windows程序员在应用软件开发中经常要用到组合框。ComboBox控件用于在下拉组合框中显示数据。,6.3.6日期时间选择控件,如果希望应用程序可以选择日期和时间,可使用DataTimePicker控件。DataTimePicker控件用于选择日期和时间,但只能够选择一个时间段。,6.4.1分组控件,GroupBox控件常常用于逻辑地组合一组控件,如RadioButton及CheckBox控件。GroupBox控件又称为分组框。GroupBox控件会显示一个框架,可以通过它的Text属性为其设置标题。,6.4.2面板控件,Panel是一个容器控件,基本上不会用它本身的事件或者方法。一般是用Panel控件统一管理几个其它非容器类控件,比如想在一个窗体里布置两个不同的界面,通过点击不同按钮切换这两个界面,或者在某些条件不成立时要把窗体中的某些控件隐藏,这时候就可以选择Panel控件。,6.4.3选项卡控件,选项卡控件(TabControl)用于创建带有多个选项卡页(TabPage,或称标签页)的窗口,每个选项卡都相当于一个对话窗口容器,可以在其中独立的存放其它控件对象。当窗口功能复杂、控件很多时,使用TabControl将其按功能进行分类非常方便。,6.4.4面板复合控件,SplitContainer控件表示一个由可移动条组成的控件,SplitContainer控件把3个控件组合在一起,其中有两个面板控件,在它们之间有一个拆分器(即分隔栏)。该可移动分隔栏将容器的显示区域分成两个大小可调的面板。在重新设置面板的大小时,面板上的控件也可以重新设置大小。用户在分隔栏上移动鼠标时,光标就会改变,此时可以移动分隔栏。SplitContainer可以包含任意控件,包括布局面板和其他SplitContainer。,6.5.1菜单控件,基本上每一个应用程序,不管是基于对话框、单文档还是多文档应用程序,都需要菜单,它是用户与应用程序交互的重要载体。在VisualStudio2008中,菜单的制作已经变得非常容易。可以使用工具箱中的两个菜单制作控件,方便地设计出具有个性化的Windows菜单。这个控件是MenuStrip。,6.5.2快捷菜单控件,快捷菜单又叫上下文菜单,就是单击右键时弹出的菜单。当右键单击某个关联的控件时,便弹出其快捷菜单,所以需要将快捷菜单与相关的控件进行关联。,6.5.3状态栏控件,StatusStrip控件主要出现在当前Window窗体的底部,一般使用文本和图像向用户显示应用程序当前状态的信息。该控件位于“菜单和工具栏”区域。,6.5.4工具栏控件,ToolStrip是MenuStrip、ContextMenuStrip和StatusStrip的基类。,6.6对话框控件,打开文件对话框控件保存文件对话框控件字体对话框颜色对话框控件,6.7.1列表视图控件,列表视图通常用于显示数据,用户可以对这些数据和显示方式进行某些控制。还可以把包含在控件中的数据显示为列和行(像网格那样),或者显示为一列,或者显示为图标表示。,6.7.2树视图控件,树视图控件(TreeView)用于组织有层次关系的数据。Window的资源管理器的左侧窗口中就有一个用于显示目录的树视图控件组成的。,
展开阅读全文