




已阅读5页,还剩78页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Windows窗体界面设计,1窗体、属性与事件2Windows窗体基本控件3菜单与工具栏4其他Windows窗体控件,本章教学目的介绍Windows窗体基本设计方法以及基本控件的用法。本章教学要求(1)掌握基本控件的属性设置方法以及常用属性;(2)掌握基本控件的常用事件处理方法;(3)掌握菜单与工具栏的用法;(4)了解其他内容。,先观察:界面设计举例1,1窗体的属性和透明显示,利用Transparent和Parent属性,可以将Label放到PictureBox上透明显示,也可以将多个PictureBox重叠透明显示。举例2:(1)将label1、PictureBox1和PictureBox2重叠放到一个Panel控件内(2)设置label1、PictureBox1和PictureBox2控件的BackColor属性均为Transparent(3)在构造函数中,设置label1和PictureBox2的父控件为PictureBox1:label1.Parent=pictureBox1;pictureBox2.Parent=pictureBox1;则label1和PictureBox2相对于PictureBox1是透明的,而PictureBox1相对于窗体Form1是透明的。,1.2单文档窗体(SDI)与多文档窗体(MDI),1.默认为单文档窗体(SDI),将窗体的IsMdiContainer属性设置为true,即可将该窗体变为多文档窗体(MDI)。2.MDI例子:(1)创建项目MdiExample(2)添加窗体Form2、Form3(3)将Form1的IsMdiContainer属性设置为True,然后添加菜单:(a)打开与关闭子窗口子菜单:打开Form2打开Form3关闭Form2关闭Form3(b)排列子窗口(子菜单:水平平铺、垂直平铺、层叠)(c)退出,1.2单文档窗体(SDI)与多文档窗体(MDI),(4)添加“打开Form2”、“打开Form3”事件:privatevoid打开Form2ToolStripMenuItem_Click()Form2fm=newForm2();fm.MdiParent=this;fm.Name=Form2;fm.Show();privatevoid打开Form3ToolStripMenuItem_Click()Form3fm=newForm3();fm.MdiParent=this;fm.Name=Form3;fm.Show();,不能省略,如果不设置,将其作为子窗体时,其Name属性默认为空字符串(String.Empty),1.2单文档窗体(SDI)与多文档窗体(MDI),(5)添加“关闭Form2”、“关闭Form3”事件:privatevoid关闭Form2ToolStripMenuItem_Click()FormmdiChildren=this.MdiChildren;foreach(FormfminmdiChildren)if(fm.Name=Form2)fm.Close();privatevoid关闭Form3ToolStripMenuItem_Click()FormmdiChildren=this.MdiChildren;foreach(FormfminmdiChildren)if(fm.Name=Form3)fm.Close();,1.2单文档窗体(SDI)与多文档窗体(MDI),(6)添加子窗体排列事件:privatevoid水平平铺ToolStripMenuItem_Click()this.LayoutMdi(MdiLayout.TileHorizontal);privatevoid垂直平铺ToolStripMenuItem_Click()this.LayoutMdi(MdiLayout.TileVertical);privatevoid层叠ToolStripMenuItem_Click()this.LayoutMdi(MdiLayout.Cascade);(7)添加“退出”事件:privatevoid退出ToolStripMenuItem_Click()Application.Exit();(8)运行,观察效果。,实验中发现的问题回答,问题:我希望知道程序是否执行到某处,但又不希望在设计窗体上显示,有哪些方法可以做到?答:方法1:在判断是否执行的地方设置断点。方法2:利用调试输出窗口输出相应信息。(1)选择菜单的“视图”“输出”,以便显示调试信息(2)利用调试信息测试执行情况。例如测试每次循环计算的结果:intsum=0;for(inti=0;i100;i+)sum+=i;System.Diagnostics.Debug.Print(第0次循环:1,i,sum);调试信息只在调试输出窗口中显示,不会在设计窗体上显示。在进行需要大量时间的后台操作时,这种方法很有用。,2Windows窗体基本控件,2.1控件中常用的属性和方法1.常用基本属性除了书上讲的属性外,还要注意以下属性的用法:1)(Name):指定控件的名称,它是控件在当前应用程序中的唯一标识,代码通过该属性来访问控件2)Enabled:决定控件是否可用,取值为true时可用,取值为false时不可用3)Anchor属性:保持控件与边框的距离不变4)Dock属性:让控件始终紧靠边框,2.1控件中常用的属性和方法,2.Anchor属性用法举例,2.1控件中常用的属性和方法,3.常用方法Focus方法:让控件获得焦点如果希望窗体一开始就让某个控件获得焦点,可以在窗体的Shown事件中实现各种控件都有自己常用的方法(后面会逐一介绍),2.2TextBox控件,1.文本框控件常用的基本属性1)Text:表示文本框中显示的内容。2)MaxLength:用户可以键入的最多字符数。3)Multiline:是否显示多行内容。4)PasswordChar:输入密码字符时显示的符号。2.TextBox控件常用的基本事件TextChanged:文本框中的内容更改时触发。3.举例:在一个文本框中输入内容,在另一个文本框中同时显示,2.3MaskedTextBox控件,1.用途:通过掩码限制用户输入的信息。2.常用属性Mask属性:设置掩码3.常用事件TypeValidationCompleted事件4.举例:,privatevoidForm1_Load(objectsender,EventArgse)maskedTextBox1.ValidatingType=typeof(System.Int32);,privatevoidmaskedTextBox1_TypeValidationCompleted(objectsender,TypeValidationEventArgse)if(!e.IsValidInput)MessageBox.Show(请输入数字);,2.4RichTextBox控件,1.常用属性(1)SelectionFont表示当前选中文本或所要输入文本的字体、大小、效果等(2)SelectionColor表示当前选中文本或所要输入文本的颜色,2.常用方法AppendText方法:添加文本信息3.举例:(RichTextBoxExample),2.5CheckBox控件,1.三种状态2.常用属性Checked属性3.常用事件CheckedChanged事件,2.6RadioButton控件,1.特点:(1)单选(2)以各自所在的容器来划分组,如果在一个窗体上创建多个单选按钮组,可以使用GroupBox或者Panel控件作为容器。2.除了是单选外,其他用法与CheckBox用法相同。,2.7ListBox控件,1.用法及属性有些类似于CheckedListBox。2.常用属性1)Items:描述控件对象中的所有项2)MutiColumn:是否以多列的形式显示各项3)SelectionMode:None、One、MultiSimple、MultiExtended4)SelectedIndex:当前选定项的索引号5)SelectedItems:当前选定项3.常用事件SelectedIndexChanged:当SelectedIndex属性值更改时触发。4.举例:,2.7ListBox控件,21,新建一个windows应用程序项目,添加一个ListBox控件和两个Button控件,设置属性如表所示。,22,privatevoidbutton1_Click(objectsender,EventArgse)for(inti=0;ilistCountry.Items.Count;i+)listCountry.SelectedIndex=i;,23,privatevoidbutton2_Click(objectsender,EventArgse)boolb;for(inti=0;i=0;i-)checkedListBox1.Items.Remove(checkedListBox1.CheckedItemsi);,2.9ComboBox控件,1.由两部分组合而成:一个文本框和一个列表框2.常用属性1)DropDownStyle属性:Simple、DropDown、DropDownList2)Items属性:与ListBox的Item属性用法相同3)SelectedItem属性:与ListBox的SelectedItem属性用法相同4)SelectedIndex属性:与ListBox的SelectedIndex属性用法相同5)SelectedValue属性(只有在数据绑定中才用此属性,第8章再讲)3.常用方法1)Add方法、Remove方法、Insert方法2)AddRange方法3)Clear方法4.常用事件:SelectedIndexChanged事件,26,利用ComboxBox控件加载系统所有字体,27,usingSystem.Drawing.Text;privatevoidbutton1_Click(objectsender,EventArgse)InstalledFontCollectionfontCollection=newInstalledFontCollection();for(inti=0;ifontCollection.Families.Length;i+)comboFont.Items.Add(fontCollection.Familiesi.Name);,练习题,2.10Timer组件,1.检查是否到达事先规定的时间间隔,并在到达时间间隔时触发的事件中执行需要的功能。2.常用属性1)Enabled:是否启用计时,false表示停止计时,true表示开始计时(也可以用Start方法和Stop方法,效果相同)。2)Interval:触发Tick事件的间隔时间,以毫秒为单位。3.事件Tick:每隔Interval属性指定的时间都会触发此事件。,2.10Timer组件,4.举例显示循环向上滚动的动画字幕(TimerExample),2.11PictureBox控件,1.常用属性1)Image:获取或设置显示的图像2)SizeMode:AutoSize、CenterImage、Normal、StretchImage、Zoom3)Parent(仅代码方式下可用):获取或设置父级控件2.举例1:例5-11举例2:图片透明叠加(TransparentExample),3菜单与工具栏,3.1MenuStrip控件1.可以在窗体的顶部、底部以及窗体的任何一个位置显示菜单。2.常用属性(1)DisplayStyle:菜单项上的显示样式。(2)Image:指定在该菜单项上显示的图标。(在C:ProgramFilesMicrosoftVisualStudio9Common7VS2008ImageLibrary下有一个.zip文件,内有各种动画文件、图像文件和图标文件,例如展开后在目录Objectspng_formatWinVista下有打开、保存等图像。)(3)ShortcutKeys:快捷键。3.常用事件:Click事件,3菜单与工具栏,菜单的几种形式:,Dock:Top,Dock:Bottom,3.2ContextMenuStrip控件,1.用于制作右键快捷菜单2.使用该控件的关键是将需要显示快捷菜单的控件的ContextMenuStrip属性设置为添加的ContextMenuStrip控件对象。(书上例子漏了这一步)3.除了是右键弹出菜单外,其他用法与MenuStrip相同。,3.3ToolStrip与StatusStrip,1.作用为窗体添加工具栏(ToolStrip)或者状态栏(StatusStrip)。工具栏和状态栏一般是由多个按钮、标签等排列组成,通过这些项可以快速地执行程序提供的一些常用命令或者显示一些状态信息。2.常用属性和事件与MenuStrip控件基本相同。,3.4BackgroundWork和进度条,1.BackgroundWork组件(1)用于后台执行耗时的处理(单独的线程),避免长时间运行时可能会导致用户界面似乎处于停止响应状态。(2)在后台利用DoWork事件调用耗时的操作。注意:不要在DoWork事件中操作任何界面对象。(3)利用ProgressChanged事件通知进度。(4)利用RunWorkerCompleted事件处理操作完成时的工作。2.如何启动后台操作(1)调用BackgroundWork对象的RunWorkerAsync方法。(2)调用时,可以将对象作为参数传递给后台线程。,3.4BackgroundWork和进度条,3.在前台用StatusStrip中的ToolStripProgressBar显示后台正在处理的进度。4.ProgressBar举例1:在后台执行一个循环,在界面中显示进度。(如果不用后台操作,在执行循环中会看到操作控件时会像死机一样),3.4BackgroundWork和进度条,3.VS2005建议用StatusStrip中的ToolStripProgressBar替换ProgressBar,但是在实际应用中,发现还是原来的ProgressBar比较好用。4.ProgressBar举例:用无损压缩算法压缩文件,并显示压缩进度(只注意进度条是如何实现的即可)。,4其他Windows窗体控件,4.1ToolTip组件1.用途:鼠标位于某个控件上,显示该控件功能的提示信息。2.当向窗体中添加一个ToolTip组件后,该窗体中的其他控件,包括窗体本身,【属性】对话框中都将会出现一个新的属性“ToolTip1上的ToolTip”。3.还可以将ToolTip显示为下图的形状(ToolTipExample):,ToolTip的一种形式,4.2SplitContainer控件,1.功能(1)用于将窗体或者Panel控件分隔为几部分(2)用于实现一些特殊的窗体效果2.举例(SplitContainerExample,下图为设计窗体,变换后的效果见下页),4.2SplitContainer控件,左边全部折叠,右边右部全展开,左边中间展开,右边边缘停靠,左边中间展开,右边左部全展开,左边展开两个,右边右部全展开,选项卡控件,使用TabControl类封装。在这类控件中,通常在上部有一些标签供选择,每个标签对应一个选项卡页面TabPage。选中一个标签就会显示相应的页面而隐藏其他页面。通过这个方式,可以把大量的控件放在多个页面中,通过选项卡标签迅速切换。一个很常见的例子是Windows系统的“显示属性”对话框。选项卡属性TabPages属性,这是一个选项卡页面的集合,可以通过它对选项卡的标签项进行管理。在属性窗口中单击TabPages属性右边的按钮,显示“TabPage集合编辑器”对话框,通过它来添加删除选项卡页面和设置页面属性。如图。要为添加后的特定页面添加控件,通过选项卡控件的标签切换到相应页面,再选中该页面,然后把控件拖动到页面中。,Alignment属性,指定选项卡的标签位于控件的什么位置,是一个TabAlignment枚举类型,有Top(默认),Bottom,Left,Right四个值。Appearance属性,指定标签的外观,有三种风格:Buttons、FlatButtons、Normal(默认)。只有当标签位于顶部时,才可以设置FlatButtons风格;位于其他位置时,将显示为Buttons。MultiLine属性,指定是否可以显示多行标签。默认情况为单行显示,在标签超出选项卡可视范围时自动使用箭头按钮来滚动标签。当把标签定位于选项卡的左边或右边时,MultiLine属性自动为true。,4.3TabControl控件,ItemSize属性,指定标签的大小。SizeMode属性,指定标签是否自动调整大小来填充标签行。枚举类型TabSizeMode定义了三种取值。Normal:根据每个标签内容调整标签的宽度Fixed:所有标签宽度相同FillToRight:调整标签宽度,使其填充标签行(只有在多行标签的情况下进行调整)TabCount属性,指定控件中所包含的标签的数量。SelectedIndex属性,当前所选中标签的索引。若没有选中项,返回-1。SelectedTab属性,当前所选中标签的引用。若没有选中项,返回null。,4.3TabControl控件,管理TabPages属性的方法可以提供索引访问tabControl1.TabPages0.Text=“背景”;添加TabPage对象:Add或者AddRange方法。删除TabPage对象:Remove方法(参数为TabPage引用)或RemoveAt方法(参数为索引值)清除所有的TabPage对象:Clear方法。SelectedIndexChanged事件改变当前选择的标签时触发这个事件可以在这个事件的处理中根据程序状态来激活或禁止相应页面的某些控件。示例程序,4.3TabControl控件,4.3TabControl控件,1.用途当需要有多个选项卡窗口时,可以使用此控件2.举例:(TabControlExample),4.4ListView控件,1.用途按不同方式显示列表视图信息2.举例:,列表视图,用ListView类封装,与列表框类似都是显示一些项的列表的控件,但功能更强大。列表视图中可以使用4中不同方式显示列表项:大图标、小图标、列表和详细信息模式,可以在应用程序中选择使用任何一种或是所有的方式。,列表视图属性View属性,指定列表视图的显示模式,属性值在枚举类型View中指定LargeIcon,显示大图标,并在图标的下面显示标题。SmallIcon,显示小图标,并在图标的右边显示标题。List,每项包含一个小图标和一个标题,并使用列来组织列表项,但每列都没有表头。Details,使用报表的形式显示列表项,每项占一行。最左边的一列显示该项的小图标和标题,其他列显示该项的子项。这种方式还可以包含一个表头,显示每列的标题,可以在运行时通过表头来改变列的宽度。,4.4ListView控件,HeaderStyle属性。在详细信息模式下,列表视图会显示表头。使用这个属性来设置表头的不同风格,取值由枚举类型ColumnHeaderStyle设定Clickable,显示表头,并且它可以响应单击事件。Nonclickable,显示表头,但它不响应单击事件。None,不显示表头。LargeImageList属性和SmallImageList属性在大图标模式下,显示LargeImageList中的图像列表;在其他三个模式下,显示SmallImageList中的图像列表。MultiSelect属性,设置列表视图是否可以选择多项。默认为只能选择一项。Sorting属性,指定是否对列表项进行排序。Scrollable属性,指定是否显示滚动条。,4.4ListView控件,为列表视图添加列表头和列表项添加列表头(ColumnHeader类)在属性窗口中单击Columns属性旁带省略号的按钮,打开“ColumnHeader集合编辑器”对话框。单击其中的“添加”按钮添加一个新的列表头,并在右边可以设置它的属性:Name设置表头名称,Text设置表头标题,Width属性设置列宽度,TextAlign属性设置列的对齐方式等等。使用代码添加的例子listView1.Column.Add(“Drive”,100,HorizontalAlignment.Left);其中参数分别表示列名称,列宽度和列对齐方式。,4.4ListView控件,添加列表项(ListItem类)单击列表视图属性窗口中Items属性旁的按钮,打开“ListViewItem集合编辑器”对话框。类似添加列表头的操作添加列表项。其中ImageIndex设置列表项对应的图像索引,Text设置列表项的标题。在包含多列的情况下,要为列表项添加子项。单击对话框中SubItems属性旁的按钮,打开“ListViewSubItem集合编辑器”对话框,在其中添加子项。其中第一个子项的标题就是列表项的标题。使用代码添加的例子listView1.Items.Add(listViewItem1);其中listViewItem1表示一个列表项对象实例。,4.4ListView控件,Items属性,包含列表视图中的所有项。可以对其使用索引访问,得到其中的单个项。每个列表项具有SubItems属性来访问它的各个子项。比如,listView1.Items0.SubItems0。在插入列表项时,列表项本身对应列表视图的第一列,它的子项对应视图的其他各列。除了详细信息模式外,其他的显示模式都只显示第一列。SelectedIndices属性和SelectedItems属性,获取当前选择的项。LabelEdit属性,设置在运行时是否可以改变列表项的标题。,4.4ListView控件,列表视图的方法BeginUpdate和EndUpdateClearGetItemAt方法,返回指定位置(x,y)的列表项。列表视图的事件ColumnClick事件,单击列表头时触发这个事件。可以在这个事件的处理过程中编写代码对列表视图进行排序。SelectedIndexChanged事件,对列表视图中项的选择发生改变时触发这个事件。,4.4ListView控件,神奇的ListView,ListView:列表视图控件,以特定样式或视图类型显示列表项,大小图标切换,模拟“我的电脑”,实现大小图标切换,需要用到的属性,存放其他控件使用的图片,图像列表ImageList,图像列表ImageList的属性,练习1显示QQ好友头像和昵称,需求说明:设计QQ好友窗体在窗体上显示好友的头像和昵称,能够切换大头像和小头像,完成时间:15分钟,ListView的详细信息视图,列的集合Columns,项的集合Items,列表视图项ListViewItem,列表视图项的子项ListViewSubItem,子项的集合SubItems,显示详细视图,模拟“我的电脑”详细视图,需要用到的属性,快捷菜单ContextMenuStrip,通过快捷菜单切换视图,为控件指定快捷菜单:ContextMenuStrip属性,练习2显示QQ好友详细信息,需求说明:在上一个练习基础上完善在窗体上显示好友的详细信息:QQ号码、性别、年龄,通过快捷菜单实现3种视图的切换,完成时间:15分钟,动态添加ListView的数据,如何用代码向ListView中添加数据?,实现动态添加,创建ListViewItem对象添加子项:添加到ListView的Items集合中:,ListViewItem对象.SubItems.Add();/每次添加一个子项/一次添加多个子项ListViewItem对象.SubItems.AddRange(字符串数组);,ListView对象.Items.Add();,关键代码分析-1,lvMyComputer.View=View.LargeIcon;,/设置大图标关联的ImageListlvMyComputer.LargeImageList=this.ilLarge;/设置小图标关联的ImageListlvMyComputer.SmallImageList=this.ilSmall;,设置ListView的视图,View属性,通过View类型获取视图种类,设置ListView关联的ImageList,关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股份回收合同协议
- 短期续约合同协议
- 进口宝石合同协议
- 签订社保合同协议
- 河道物业合同协议
- 台州学院《建筑力学实验》2023-2024学年第一学期期末试卷
- 西南科技大学《医学科研方法与统计分析》2023-2024学年第二学期期末试卷
- 木作工程合同协议
- 扬州大学《产品形导思维设计》2023-2024学年第二学期期末试卷
- 木糠买卖合同协议
- 湖南省2025届高三“一起考”大联考(模拟二)语文试题及参考答案
- 2024年中国职工保险互助会陕西办事处招聘笔试真题
- 商业地产项目整体经营方案
- 旅行社代订业务合同模板
- 2025年4月自考13887经济学原理中级押题及答案
- 2025广东广州市花都区恒悦房地产开发有限公司招聘项目用工人员16人笔试参考题库附带答案详解
- 琴行规章制度
- 医疗大数据平台的运营管理策略
- 医院内部控制岗位职责与流程优化
- 2025年中国石油钻采专用设备行业竞争格局及市场发展潜力预测报告
- 国企人力笔试题库及答案
评论
0/150
提交评论