资源预览内容
第1页 / 共83页
第2页 / 共83页
第3页 / 共83页
第4页 / 共83页
第5页 / 共83页
第6页 / 共83页
第7页 / 共83页
第8页 / 共83页
第9页 / 共83页
第10页 / 共83页
亲,该文档总共83页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1 Windows窗体界面设计 1 窗体、属性与事件2 Windows窗体基本控件3 菜单单与工具栏栏 4 其他Windows窗体控件 2 本章教学目的介绍Windows窗体基本设计方法以及基本控件的用法。 本章教学要求(1)掌握基本控件的属性设置方法以及常用属性;(2)掌握基本控件的常用事件处理方法;(3)掌握菜单与工具栏的用法;(4)了解其他内容。 3先观察:界面设计举例141 窗体的属性和透明显示利用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是透明的。51.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)退出61.2 单文档窗体(SDI)与多文档窗体(MDI)(4)添加“打开Form2”、“打开Form3”事件:private void 打开Form2ToolStripMenuItem_Click()Form2 fm = new Form2();fm.MdiParent = this;fm.Name = “Form2“;fm.Show();private void 打开Form3ToolStripMenuItem_Click()Form3 fm = new Form3();fm.MdiParent = this;fm.Name = “Form3“;fm.Show(); 不能省略,如果不设置,将其作 为子窗体时,其Name属性默认 为空字符串(String.Empty)71.2 单文档窗体(SDI)与多文档窗体(MDI)(5) 添加“关闭Form2”、“关闭Form3”事件:private void 关闭Form2ToolStripMenuItem_Click()Form mdiChildren = this.MdiChildren;foreach(Form fm in mdiChildren)if (fm.Name = “Form2“) fm.Close();private void 关闭Form3ToolStripMenuItem_Click()Form mdiChildren = this.MdiChildren;foreach (Form fm in mdiChildren)if (fm.Name = “Form3“) fm.Close();81.2 单文档窗体(SDI)与多文档窗体(MDI)(6) 添加子窗体排列事件:private void 水平平铺ToolStripMenuItem_Click()this.LayoutMdi(MdiLayout.TileHorizontal);private void 垂直平铺ToolStripMenuItem_Click()this.LayoutMdi(MdiLayout.TileVertical);private void 层叠ToolStripMenuItem_Click()this.LayoutMdi(MdiLayout.Cascade); (7) 添加“退出”事件:private void 退出ToolStripMenuItem_Click()Application.Exit(); (8) 运行,观察效果。9实验中发现的问题回答问题:我希望知道程序是否执行到某处,但又不希望在设计窗体上显示,有 哪些方法可以做到? 答:方法1:在判断是否执行的地方设置断点。方法2:利用调试输出窗口输出相应信息。(1)选择菜单的“视图” “输出”,以便显示调试信息(2)利用调试信息测试执行情况。例如测试每次循环计算的结果: int sum = 0;for (int i = 0; i = 0; i-) checkedListBox1.Items.Remove(checkedListBox1.CheckedItemsi); 25 2.9 ComboBox控件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事件2626利用ComboxBox控件加载系统所有字体 控件名控件类型属性名属性值comboFontComboBox默认button1ButtonText加载字体2727using System.Drawing.Text; private void button1_Click(object sender, EventArgs e)InstalledFontCollection fontCollection = new InstalledFontCollection(); for (int i = 0; i fontCollection.Families.Length; i+)comboFont.Items.Add(fontCollection.Familiesi.Name);28练习题29 2.10 Timer组件1.检查是否到达事先规定的时间间隔,并在到达时间间隔时触发的事件中执行需要的功能。 2.常用属性1)Enabled:是否启用计时,false表示停止计时,true表示开始计时(也可以用Start方法和Stop方法,效果相同)。2)Interval:触发Tick事件的间隔时间,以毫秒为单位。3.事件Tick:每隔Interval属性指定的时间都会触发此事件。302.10 Timer组件4.举例显示循环向上滚动的动画字幕(TimerExample)312.11 PictureBox控件1.常用属性1) Image:获取或设置显示的图像2) SizeMode:AutoSize、CenterImage、Normal、StretchImage、Zoom3) Parent(仅代码方式下可用):获取或设置父级控件 2.举例1:例5-11举例2:图片透明叠加(TransparentExample)323 菜单与工具栏3.1 MenuStrip控件1.可以在窗体的顶部、底部以及窗体的任何一个位置显示菜单。2.常用属性 (1) DisplayStyle:菜单项上的显示样式。(2) Image:指定在该菜单项上显示的图标。(在C:Program FilesMicrosoft Visual Studio 9Common7VS2008ImageLibrary下有一个.zip文件,内有各种动画文件、图像文件和图标文件,例如展开后在目录Objectspng_formatWinVista下有打开、保存等图像。) (3) ShortcutKeys:快捷键。3.常用事件:Click事件333 菜单与工具栏菜单的几种形式:Dock:TopDock:Bottom34 3.2 ContextMenuStrip控件1.用于制作右键快捷菜单2.使用该控件的关键是将需要显示快捷菜单的控件的ContextMenuStrip属性设置为添加的ContextMenuStrip控件对象。(书上例子漏了这一步)3.除了是右键弹出菜单外,其他用法与MenuStrip相同。35 3.3 ToolStrip与StatusStrip1.作用为窗体添加工具栏(ToolStrip)或者状态栏(StatusStrip)。工具栏和状态栏一般是由多个按钮、标签等排列组成,通过这些项可以快速地执行程序提供的一些常用命令或者显示一些状态信息。 2.常用属性和事件与MenuStrip控件基本相同。363.4 BackgroundWork和进度条1.BackgroundWork组件(1)用于后台执行耗时的处理(单独的线程),避免长时间运行时可能会导致用户界面似乎处于停止响应状态。(2)在后台利用DoWork事件调用耗时的操作。注意:不要在DoWork事件中操作任何界面对象。(3)利用ProgressChanged事件通知进度。(4)利用RunWorkerCompleted事件处理操作完成时的工作。2.如何启动后台操作(1)调用BackgroundWork对象的RunWorkerAsync方法。(2)调用时,可以将对象作为参数传递给后台线程。37 3.4 BackgroundWork和进度条3.在前台用StatusStrip中的ToolStripProgressBar显示后台正在处理的进度。4.ProgressBar举例1:在后台执行一个循环,在界面中显示进度。(如果不用后台操 作,在执行循环中会看到操作控件时会像死机一样)38 3.4 BackgroundWork和进度条3.VS2005建议用StatusStrip中的ToolStripProgressBar替换 ProgressBar,但是在实际应用中,发现还是原来的 ProgressBar比较好用。 4.ProgressBar举例:用无损压缩算法压缩文件,并显示压缩进 度(只注意进度条是如何实现的即可)。394 其他Windows窗体控件4.1 ToolTip组件1. 用途:鼠标位于某个控件上,显示该控件功能的提示信息。2.当向窗体中添加一个ToolTip组件后,该窗体中的其他控件,包括窗体本 身,【属性】对话框中都将会出现一个新的属性“ToolTip1上的ToolTip”。3. 还可以将ToolTip显示为下图的形状(ToolTipExample):ToolTip的一种形式404.2 SplitContainer控件 1.功能(1)用于将窗体或者Panel控件分隔为几部分(2)用于实现一些特殊的窗体效果 2.举例(SplitContainerExample,下图为设计窗体,变换后的效果见下页)414.2 SplitContainer控件左边全部折叠,右边右部全展开左边中间展开,右边边缘停靠左边中间展开,右边左部全展开左边展开两个,右边右部全展开42选项卡控件 使用TabControl类封装。在这类控件中,通常在上部有 一些标签供选择,每个标签对应一个选项卡页面 TabPage。选中一个标签就会显示相应的页面而隐藏其 他
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号