书签 分享 收藏 举报 版权申诉 / 76
上传文档赚钱

类型《C#程序设计及基于工作过程的项目开发》课件第4章.ppt

  • 上传人(卖家):momomo
  • 文档编号:8088709
  • 上传时间:2024-11-24
  • 格式:PPT
  • 页数:76
  • 大小:1.03MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《C#程序设计及基于工作过程的项目开发》课件第4章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    C#程序设计及基于工作过程的项目开发 C# 程序设计 基于 工作 过程 项目 开发 课件
    资源描述:

    1、项目一项目一 我的我的SDI记事本记事本.1 任务一:任务一:“我的我的SDI记事本记事本”主窗体设计主窗体设计.2 任务二:任务二:“我的我的SDI记事本记事本”功能实现功能实现.3 任务三:任务三:“我的我的SDI记事本记事本”的修饰一的修饰一关于窗体关于窗体.4 任务四:任务四:“我的我的SDI记事本记事本”的修饰二的修饰二欢迎窗体欢迎窗体.5 项目案例项目案例 .1 任务一:任务一:“我的我的SDI记事本记事本”主窗体设主窗体设计计.1.1 功能描述功能描述在本例中将通过使用工具箱中菜单、对话框等控件,实现“我的SDI记事本”的窗体设计,如图.1所示。图.1.1.2 设计步骤及要点解析

    2、设计步骤及要点解析(1)打开Microsoft Visual Studio 2005,单击“创建:项目”,项目类型选择Visual C#,模板选择Windows应用程序,项目名称输入MyNotepad,位置根据自己需要选择设定,单击“确定”按钮。(2)单击Form1,在资源管理器中将Form1.cs改为NotepadForm.cs,在属性窗口中修改Text属性为“我的SDI记事本”,StartPosition属性为CenterScreen。(3)在工具箱中将MenuStrip控件拖放到该窗体,在属性窗口中修改Name属性为msNotepad,之后输入各级菜单,并且修改各自的Name和Text属

    3、性,如表.1所示。自动换行 tsmiWordWrap 自动换行 格式 tsmiFormat 格式 字体 tsmiFont 字体 查看 tsmiCheck 查看 状态栏 tsmiStatusBar 状态栏 true 帮助 tsmiHelp 关于 tsmiAbout 关于 (4)添加statusStrip控件,在属性窗口中修改Name属性为ssNotPad,三次单击statusStrip控件左端出现的下拉式箭头,均选择StatusLabel,将出现toolStripStatusLabel1,在属性窗口中将三个toolStripStatusLabel1的Name属性分别修改为slblXY、slblS

    4、pring和slblTime,其中将slblSpring的Spring属性修改为true。(5)添加TextBox控件,在属性窗口中修改Name属性为txtEdit,Dock属性为Fill,Text属性为空。要点解析:步骤(2)窗体的StartPosition属性设置为CenterScreen,其目的是使得窗体运行后能显示在屏幕的中间位置。步骤(3)各控件的命名是根据.net 2005控件命名规范命名的,如表.2所示。步骤(4)statusStrip控件toolStripStatusLabel的Spring属性决定 ToolStripStatusLabel 控件是否自动填充StatusStri

    5、p控件中的可用空间。步骤(5)Dock属性为Fill,其目的是使得程序运行后文本框控件TextBox能充满窗体Form的菜单栏和状态栏余下的部分。.1.3 知识库知识库1.窗体窗体(Form)控件控件窗体是应用程序的基本单元,可以是标准窗口、多文档界面窗口或者对话框等。Form控件的常见属性如表.3所示。表?.3 Form 控件的常见属性 属 性 说 明 Name 控件名称 Text 标题 FormBorderStyle 设置窗体的外观和行为 AutoScroll 当控件的内容大于窗体的范围时,是否自动显示滚动条 IsMdiContainer 确定该控件是否是 MDI 容器 MaximizeB

    6、ox 是否在窗体上显示最大化按钮 MinimizeBox 是否在窗体上显示最小化按钮 Icon 窗体图标 showInTaskbar 窗体是否显示在 Windows 任务栏中 AcceptButton 设置某个按钮当按下 Enter 键时等于单击了这个按钮 CancelButton 设置某个按钮当按下 Esc 键时等于单击了这个按钮 3.主菜单主菜单(MenuStrip)控件控件MenuStrip 控件主要用于生成所在窗体的主菜单。在设计窗体中添加该控件后,会在窗体上显示一个菜单栏,可以直接在此菜单栏上编辑各主菜单项及对应的子菜单项,也可以通过鼠标右键单击对应的菜单项修改项的类型。当菜单的结构

    7、建立起后,再为每个菜单项编写事件代码,即可完成窗体的菜单设计。编辑各菜单项内容时,可以用符号“&”指定该菜单项的组合键,让其后的字母带下划线显示,如编辑菜单项“E&xit”,则会显示为“Exit”,意思是可以直接用“Alt+X”组合键实现与单击该菜单项相同的功能;用符号“-”可以在菜单中显示各项之间的分隔条。该控件的常见属性如表.5所示。表?.5 MenuStrip 控件的常见属性 属 性 说 明 Name 控件名称 Items 控件上所有的子项的集合 Text 标题 ContexMenuStrip 右击控件时显示快捷菜单 BackColor 设置背景色 Font 可改变控件字体的格式样式 E

    8、nabled 控件可用不可用 Visible 是否显示控件 MenuStrip控件的常见事件有以下几种:Click事件:单击菜单项时触发的操作。DropDownClosed事件:关闭菜单项的子菜单时触发的操作。DropDownItemClicked事件:单击菜单项的子菜单中任何一项时触发的操作。DropDownOpened事件:菜单项的子菜单打开之后触发的操作。DropDownOpening事件:打开菜单项的子菜单时触发的操作。4.状态栏状态栏(statusStrip)控件控件statusStrip控件可以在窗体底部使用有框架的区域显示正在操作当前Windows窗体的用户的相关信息或当前系统的

    9、一些信息。该控件的常见属性如表.6所示。表?.6 statusStrip 控件的常见属性 属 性 说 明 BackgroundImage 用于控件背景图像 Items 控件上所有子项的集合 Text 标题 ContexMenuStrip 右击控件时显示快捷菜单 Anchor 定义控件在窗体改变大小时,根据设置控件绑定到窗体边缘 Dock 定义要绑定到容器的控件边框 .2 任务二:任务二:“我的我的SDI记事本记事本”功能实现功能实现.2.1 功能描述功能描述用代码实现用代码实现“我的我的SDI记事本记事本”主窗体的主要功能。主窗体的主要功能。.2.2 设计步骤及要点解析设计步骤及要点解析(1)

    10、导入名称空间。1 using System.IO;(2)双击“新建”菜单项,进入“新建”菜单的单击事件。2 private void tsmiNew _ Click(object sender,EventArgs e)3 4 if(txtEdit.Modified&txtEdit.Text!=)5 6 DialogResult result=MessageBox.Show(文件+Text+内容已经改变。nn您是否要保存文件?,记事本,MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);7 if(string.Equals(result,

    11、DialogResult.Yes)8 9 SaveFileDialog save=new SaveFileDialog();10 save.Filter=文本文件|*.text;*.txt;11 if(save.ShowDialog()=DialogResult.OK)12 13 SaveInfo(save.FileName);14 txtEdit.Text=;15 this.Text=无标题-记事本;16 17 18 else if(string.Equals(result,DialogResult.Cancel)19 20 21 else if(string.Equals(result,D

    12、ialogResult.No)22 23 txtEdit.Text=;24 this.Text=无标题-记事本;25 26 27 代码分析:4 如果当前记事本编辑窗口内容有改动并且编辑窗口不为空,则提示用户是否保存。7 单击弹出判断文本框,单击确认后才执行代码。9 创建保存对话框对象。10 设置保存的格式。11 打开保存对话框,并判断是否按下确定保存的按钮。13 调用自定义的保存方法,保存指定文件名和路径的文件。14 清空编辑框。15 设定当前记事本的标题栏信息为“无标题-记事本”。18 当用户按下取消按钮后不做任何操作。21 判断用户是否按下不保存按钮。(3)自定义打开的方法。28 priv

    13、ate string savePath=;29 public void LoadInfo(string path)30 31 string filePath=path;32 savePath=filePath;33 StreamReader fm=new StreamReader(filePath,System.Text.Encoding.Default);34 this.Text=Path.GetFileName(filePath);35 txtEdit.Text=fm.ReadToEnd();36 fm.Close();37 代码分析:28 自定义全局变量,获取保存文件的路径。29 自定义

    14、返回值为空的载入文件的方法,方法名为LoadInfo。有形式参数一个,用于获取文本文件的路径。33 创建读文本流对象,此时若导入第1行名称空间则无法创建。34 设定当前记事本标题栏显示所打开文件的文件名。35 读取文件流数据到记事本编辑框中。36 释放文件流。(4)双击“打开”菜单项,进入“打开”菜单项的单击事件。38 private void tsmiOpen _Click(object sender,EventArgs e)39 40 OpenFileDialog open=new OpenFileDialog();41 open.Filter=文本文件|*.text;*.txt;42 i

    15、f(open.ShowDialog()=DialogResult.OK)43 44 LoadInfo(open.FileName);45 46 代码分析:40 创建打开文件对话框对象。41 设置打开文件的格式。42 打开文件对话框并判断是否按下确定键。44 调用自定义的载入文件方法LoadInfo,打开对话框中选定的文件内容。(5)自定义保存的方法。47 public void SaveInfo(string pat)48 49 string filePath=Path.GetFullPath(pat);50 savePath=filePath;51 StreamWriter sw=new S

    16、treamWriter(filePath,false,Encoding.Default);52 this.Text=Path.GetFileName(filePath);53 sw.Write(txtEdit.Text);54 sw.Close();55 56 public void Save2Info()57 58 StreamWriter sw=new StreamWriter(savePath,false,Encoding.Default);59 sw.Write(txtEdit.Text);60 sw.Close();61 代码分析:47 自定义另存为的方法,返回值为空,带一个stri

    17、ng类型的形式参数。49 获取保存文件的路径全称。51 创建写文件流对象。52 设置记事本标题栏信息为当前打开文本文件名。53 调用文件流的Write方法,将编辑框中的文本信息写入指定的文件流中。54 是否写入文件流对象。56 自定义直接保存方法,返回值为空,参数表为空。59 保存文件。60 释放资源(6)双击“保存”菜单项,进入“保存”菜单项的单击事件。62 private void tsmiSave _Click(object sender,EventArgs e)63 64 SaveFileDialog save=new SaveFileDialog();65 if(string.Equ

    18、als(this.Text,无标题-记事本)66 67 save.Filter=文本文件|*.text;*.txt;68 if(save.ShowDialog()=DialogResult.OK)69 70 SaveInfo(save.FileName);71 72 73 else74 75 Save2Info();76 77 代码分析:64 创建保存文件对话框对象。65 判断是新建记事本还是打开以前的记事本。67 设置保存的文件格式。70 调用自定义方法SaveInfo。75 调用自定义方法Save2Info。(7)双击“另存为”菜单项,进入“另存为”菜单项的单击事件。78 private

    19、void tsmiSaveA _Click(object sender,EventArgs e)79 80 SaveFileDialog save=new SaveFileDialog();81 save.Filter=文本文件|*.text;*.txt;82 if(save.ShowDialog()=DialogResult.OK)83 84 SaveInfo(save.FileName);85 86 代码分析:80 创建保存对话框。81 设置保存的文件格式。82 显示保存对话框,并判断是否按下确定按钮。84 调用自定义方法SaveInfo,其中保存对话框的文件路径名为实参。(8)双击“退出

    20、”菜单项,进入“退出”菜单项的单击事件。87 private void tsmiExit _Click(object sender,EventArgs e)88 89 if(txtEdit.Modified&txtEdit.Text!=)90 91 DialogResult result=MessageBox.Show(文件+Text+内容已经改变。nn您是否要保存文件?,记事本,MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);92 if(string.Equals(result,DialogResult.Yes)93 94 Sav

    21、eFileDialog save=new SaveFileDialog();95 save.Filter=文本文件|*.text;*.txt;96 if(save.ShowDialog()=DialogResult.OK)97 98 SaveInfo(save.FileName);99 Application.Exit();100 101 102 103 else if(string.Equals(result,DialogResult.Cancel)104 105 106 107 else if(string.Equals(result,DialogResult.No)108 109 App

    22、lication.Exit();110 111 112 else113 114 Application.Exit();115 116 代码分析:91 在退出记事本时,如果当前记事本内容有改动,就询问用户是否保存。94 创建保存对话框。95 设置保存的格式。96 显示保存对话框,并选择保存的文件路径和名称。98 调用自定义的SaveInfo方法。105此时用户不做任何操作。109整个应用程序退出。114整个应用程序退出。(9)单击“字体”菜单项,进入“字体”单击事件。117 private void TlSMItemFont_Click(object sender,EventArgs e)118

    23、 119 FontDialog font=new FontDialog();120 if(font.ShowDialog()=DialogResult.OK)121 122 this.txtEdit.Font=font.Font;123 124 代码分析:119 创建字体对话框对象。122 将字体对话框中选中的字体格式赋给文本框中文字的字体。(10)单击“颜色”菜单项,编写“颜色”单击事件。125 private void TlSMItemColor_Click(object sender,EventArgs e)126 127 ColorDialog fontcolor=new ColorD

    24、ialog();128 if(fontcolor.ShowDialog()=DialogResult.OK)129 130 this.txtEdit.ForeColor=fontcolor.Color;131 132 代码分析:127 创建颜色对话框对象。130 将颜色对话框中选中的颜色设置为文本框中文字的颜色。(11)单击“撤销”菜单项,编写“撤销”单击事件。133 txtEdit.Undo()(12)单击“复制”菜单项,编写“复制”单击事件。134 txtEdit.Copy()(13)单击“剪切”菜单项,编写“剪切”单击事件。135 txtEdit.Cut()(14)单击“全选”菜单项,编

    25、写“全选”单击事件。136 txtEdit.SelectAll()(15)单击“删除”菜单项,编写“删除”单击事件。137 txtEdit.SelectedText=;(16)单击“状态栏”“查看”菜单项,编写“查看”单击事件。138 private void tsmiStatusBar _Click(object sender,EventArgs e)139 140 if(tsmiStatusBar.Checked=true)141 142 ssNotPad.Visible=true;143 144 if(tsmiStatusBar.Checked=false)145 146 ssNotPa

    26、d.Visible=false;147 148 代码分析:142 当“查看”菜单项被选中时,当前状态栏可见。146 当“查看”菜单项不被选中时,当前状态栏隐藏。(17)选中文本框控件,单击属性窗口的事件编辑器,找到文本框控件的MouseMove事件编写代码,实现状态栏上鼠标坐标值的显示。149 private void txtEdit_MouseMove(object sender,MouseEventArgs e)150 151 slblXY.Text=string.Format(当前位置是x轴:0,y轴1,e.X,e.Y);152 代码分析:151 当鼠标在文本框内移动时记录下鼠标实时的横

    27、坐标值和纵坐标值,并显示在状态 栏中。(18)双击定时器Timer控件,编写Timer的Tick事件,实现状态栏上日期时间的显示。153 private void timer1_Tick(object sender,EventArgs e)154 155 dateTime =DateTime.Now.ToString();156 slblTime.Text =string.Format(当前日期时间:0,dateTime);157 代码分析:153 利用定时器Timer控件,每秒更新一次当前系统的时间。155 获取系统时间。156 将系统的日期时间显示在状态栏中。.2.3 知识库知识库1.系统

    28、对话框的使用系统对话框的使用.NET framework 2.0提供了标准的系统对话框,使用相应的类进行封装,如OpenFileDialog类、SaveFileDialog类、FontDialog类、ColorDialog类等,各种常见对话框的属性及返回值如表.7所示。显示对话框需调用ShowDialog方法。表?.7 各种常见对话框的属性和返回值 对 话 框 属 性 返 回 值 ColorDialog AllowFullOpen,SolidColorOnly,ShowHelp Color FontDialog Font,Color OpenFileDialog InitialDirector

    29、y,Filter,RestoreDirectory,MultiSelect,ShowReadOnly OpenFile(),FileName,FileNames SaveFileDialog OverwritePrompt FileName 表?.8 OpenFileDialog与 SaveFileDialog 对话框常见属性与事件 属性或事件 说 明 InitialDirectory 对话框的初始目录 Filter 筛选要在对话框中显示的文件类型,例如:“图像文件(*.JPG;*BMP)|*.JPG;*BMP|所有文件(*.*)|(*.*)”RestoreDirectory 控制对话框在关闭

    30、之前是否恢愎当前目录 FileName 第一个显示在对话框的文件或最后一个选取的文件 Title 对话框标题栏显示的字符内容 AddExtension 是否自动添加默认扩展名 CheckPathExists 在对话框返回之前,检查指定的路径是否存在 DefaultExt 设置默认扩展名 DereferenceLinks 在从对话框返回前是否取消引用快捷方式 ShowHelp 是否启用“帮助”按钮 ValiDateNames 控制对话框,检查文件名是否只接受有效的文件名 Multiselect 控制对话框,是否允许选择多个文件 FileOk 当用户单击“打开”或“保存”时要触发的事件 HelpR

    31、equest 当用户单击“帮助”按钮时要触发的事件 表?.9 FontDialog 对话框常见属性 属 性 说 明 ShowEffects 是否显示字体效果 ShowColor 是否显示颜色控件 Font 设置初始字体属性 Color 设置初始颜色属性 MaxSize 设置能够选择的最大字体 MinSize 设置能够选择的最小字体 2.StreamWriter与与StreamReader(文件操作文件操作)用StreamReader和StreamWriter类,不需要担心文件中使用的编码方式(文本格式)了。可能的编码方式是ASCII(一个字节表示一个字符)或者基于Unicode的格式(Unic

    32、ode、UTF7和UTF8)。其约定是:如果文件是ASCII格式,则只包含文本;如果是Unicode格式,则用文件的前两个或三个字节来表示,这几个字节可以设置为表示文件中格式的值的特定组合。具体操作如下:(1)对文件操作,先引用两个命名空间:using System.IO;(操作文件)using Sysetem.Text;(操作文本)(2)创建文本文件:创建文件名和文件内容(相当于新建文本文档);创建StreamWriter对象,创建一个某格式的文件;将内容写入数据流WriteLine;关闭StreamWrite对象。3.消息框消息框(MessageBox)消息框通常用于显示一些提示和警告信息

    33、。用户不能创建MessageBox类的实例调用静态Show方法;在调用Show方法时,也需要有选择地指定参数,如消息框显示的字符串、标题栏显示的字符串、消息框中显示的按钮和图标等。消息框通过MessageBoxButtons类来指定消息框中显示的按钮,通过MessageBoxIcon类指定消息框中显示的图标,如表.10和表.11所示。表?.10 MessageBoxButtons 类 静态常量成员 说 明 AbortRetryIgnore 显示“终止”、“重试”、“忽略”按钮 Ok 显示“确定”按钮 OkCancel 显示“确定”、“取消”按钮 RetryCancel 显示“重试”、“取消”按

    34、钮 YesNo 显示“是”、“否”按钮 YesNoCancel 显示“是”、“否”、“取消”按钮 表?.11 MessageBoxIcon 类 静态常量成员 说 明 Asterisk 提示图标 Error 错误图标 Exclamation 警告图标 Hand 指示图标 Information 提示图标 Question 问号图标 Stop 错误图标 Warning 警告图标 4事件事件Windows窗体应用程序的设计是基于事件驱动的。事件是指由系统事先设定的、能被控件识别和响应的动作,例如单击鼠标或按下某个键等。事件最常见的用途是用于图形用户界面。一般情况下,每个控件都有一些事件,当用户对控件

    35、对象进行某些操作(如单击某个按钮)时,系统就会将相关信息告诉这些事件。调用事件的代码很简单,它的语法和调用一个方法类似,直接使用事件的名称,并传入事件的参数就可以了。事件驱动指程序不是完全按照代码文件中排列的顺序从上到下依次执行的,而是根据用户操作触发相应的事件。设计Windows应用程序的很多工作就是为各个控件编写需要的事件代码,但一般来说只需要对必要的事件编写代码。在程序运行时由控件识别这些事件,然后去执行对应的代码。没有编写代码的事件是不会响应任何操作的。常见的事件如表.12所示。表?.12 常 见 的 事 件 事 件 名 称 说 明 Click 单击鼠标左键时触发 MouseDoubl

    36、eClick 双击鼠标左键时触发 MouseEnter 鼠标进入控件可见区域时触发 MouseMove 鼠标在控件可见区域内移动时触发 MouseLeave 鼠标离开控件可见区域时触发 KeyDown 按下键盘某个键时触发 KeyUp 释放键盘按键时触发 KeyPress 释放键盘按键后触发 .3 任务三:任务三:“我的我的SDI记事本记事本”的修饰一的修饰一关于窗关于窗体体.3.1 功能描述功能描述关于窗体实现多窗体显示,介绍本系统的基本信息,如图-2所示。图.2.3.2 设计步骤及要点解析设计步骤及要点解析(1)单击“项目”“添加Windows窗体”菜单,在对话框中名称一栏将文件名改为“A

    37、boutForm.cs”。(2)修改当前窗体的各个属性,如表.13所示。表?.13 关于窗体的属性 属 性 值 备 注 Text 关于 FormBoderStyle FixedDialog 将当前窗体设置为模态窗体 MaximizeBox False 不显示最大化按钮 MinimizeBox False 不显示最小化按钮 (3)在工具箱中拖放三个Label控件到该窗体,放置在窗体的中间并修改各个属性,如表.14所示。表?.14 三个 Label 控件 控 件 属 性 值 备 注 Name lblName Text 我的 SDI 记事本 Anchor Top,Bottom,Left,Right

    38、第一个Label 控件 Font 字体为粗体,字号为三号 Name lblNo Text 版本号:1.0 Anchor Top,Bottom,Left,Right 第二个Label 控件 Font 字体为粗体,字号为三号 Name lblUser Text 版权:热爱学习 C#的所有同学 Anchor Top,Bottom,Left,Right 第三个Label 控件 Font 字体为粗体,字号为三号 (4)在工具箱中将Button控件拖放到该窗体,放置于窗体下端的中间,并修改各个属性,如表.15所示。表?.15 Button控件 属 性 值 备注 Name btnOk Text 确定 .3.

    39、3 功能实现功能实现(1)双击主窗体菜单栏“帮助”中的子菜单“关于记事本”,编写“关于记事本”的单击事件,实现关于窗体的显示。1 private void tsmiAbout _Click(object sender,EventArgs e)2 3 AboutForm aboutForm=new AboutForm();4 aboutForm.Show();5 代码分析:8 关闭关于窗体。代码分析:3 实例化关于窗体。4 显示关于窗体。(2)在关于窗体中,双击“确定”按钮,编写“确定”按钮btnOk的单击事件,实现关于窗体的关闭。6 private void btnOk_Click(objec

    40、t sender,EventArgs e)7 8 this.Close();9 .3.4 知识库知识库模态窗体和非模态窗体对话框一般分为两种类型:模态类型(model)与非模态类型(modeless)。所谓模态对话框,就是指除非采取有效的关闭手段,用户的鼠标焦点或者输入光标将一直停留在其上的对话框;非模态对话框则不会强制此种特性,用户可以在当前对话框以及其他窗口间进行切换。在父子窗体中,子窗体如果是模态,则不关闭子窗体就无法处理主窗体的事务;若子窗体是非模态,则不关闭子窗体同样可以处理主窗体的事务。对于模态对话框,如果打开了一个模态对话框,则只能在这个模态对话框基础之上进行操作(如利用本模态对

    41、话框的菜单进行弹出另一个对话框),而不能在同一应用程序的其它地方进行工作,只有关闭了这个模态对话框才能在其它地方进行操作;对于非模态对话框,无论它是否关闭,都可以在其它地方进行操作。Form.Show():创建新窗体(非模态)后,立即返回,且没有在当前活动窗体和新窗体间建立任何关系,即在保持新窗体的情况下关闭(或最小化)现有窗体或在保留现有窗体情况下关闭(或最小化)新窗体,都是可以的。Form.ShowDialog():创建模态窗体,即只有当建立的新窗体关闭之后,原有窗体才能重新获得控制权。即如果不关闭新窗体,则无法对原活动窗体进行任何操作。对新窗体进行的最小化、还原将会和原窗体一起进行,但是

    42、新窗体的关闭对原窗体没有影响。需要注意的是,不管是何种情况,只要主窗体被关闭了,或主程序结束了,那么Application.Exit()将会关闭所有窗体,不管它是模态的还是非模态的。.4 任务四:任务四:“我的我的SDI记事本记事本”的修饰二的修饰二欢迎窗欢迎窗体体.4.1 功能描述功能描述通过使用工具箱中定时器Timer控件,实现“我的SDI记事本”的欢迎窗体,如图.3所示。欢迎窗体显示3秒钟后自动关闭。图.3.4.2 设计步骤设计步骤(1)单击Microsoft Visual Studio 2005的“文件”“项目”“添加Windows窗体”,选中“Windows窗体”,在名称处输入“We

    43、lcomeForm.cs”,单击“确定”按钮。设置FormBorderStyle属性为None(无窗体边框);设置StartPosition属性为CenterScreen(窗体居中);设置Opacity属性为90%。(2)在工具箱中将Timer控件拖放到该窗体,并设置其Name属性为tmrWelcome,设置其Interval属性为1000。(3)在工具箱中将Label控件拖放到该窗体,并设置其Text属性值为“我的SDI记事本”,并修改其Font集合的Size属性为11。(4)在工具箱中将ProgressBar(进度条)控件拖放到该窗体,并设置其Name属性为pgbWelcome,设置其Ma

    44、ximuml属性为3。.4.3 功能实现及要点解析功能实现及要点解析(1)启动定时器功能。1 private void WelcomeForm _Load(object sender,EventArgs e)2 3 tmrWelcome.Enabled=true;4 代码分析:3 启动定时器。(2)在WelcomeForm类内添加成员,实现计时。5 public int i=0;(3)双击定时器,进入定时器代码编辑器。6 private void tmrWelcome_Tick(object sender,EventArgs e)7 8 pgbWelcome.Value=i;9 i+;10 i

    45、f(i=4)11 12 tmrWelcome.Enabled=false;13 this.DialogResult=DialogResult.OK;14 15 代码分析:8 将全局变量的值赋值给进度条。9 每秒钟全局变量增加1。12 关闭定时器。13 设置当前欢迎窗体的对话框返回值为确定。(4)修改program.cs文件的main方法内容。16 Application.EnableVisualStyles();17 Application.SetCompatibleTextRenderingDefault(false);18 WelcomeForm welForm=new WelcomeFo

    46、rm();19 if (welForm.ShowDialog()=DialogResult.OK)20 Application.Run(new NotepadeForm();21 else22 Application.Exit();代码分析:16 使得应用程序启用Windows XP样式。17 在应用程序范围内设置控件显示文本的默认方式为以GDI方式显示文本。18 应用程序运行欢迎窗体。.4.4 知识库知识库1.Timer控件控件Timer控件提供了一种可在程序运行时操控时间的机制。它是一种非可视化控件,不向用户提供用户界面,因此在运行时不会显示在界面上。它类似于时钟,在指定的时间间隔不断计时

    47、,时间一到即触发事件,执行预设的动作。Timer控件的属性或方法如表.16所示。表?.16 Timer 控件 属性或方法 说 明 Enabled 用于表示是否 Tick 事件 Interval 用于指定间隔时间,单位是毫秒 Tick 指定间隔到期后执行 2.ProgressBar控件控件ProgressBar进度条控件用于指示操作的进度、完成的百分比,其外观是排列在水平条中的一定数目的矩形,通常通过在程序中设置其Value值来显示任务完成的百分比。Progress Bar控件的属性或方法如表.17所示。表?.17 ProgressBar 控件 属性或方法 说 明 Maximum 进度条控件的最

    48、大值。默认值为 100 Minimum 进度条控件的最小值。进度条从最小值开始递增,直至达到最大值。默认值为 0 Step PerformStep 方法据以增加进度条的光标位置的值。默认值为 10 Value 进度条控件中光标的当前位置。默认值为0 Increment 按指定的递增值移动进度条的光标位置 PerformStep 按 Step 属性中指定的值移动进度条的光标位置 .5 项项 目目 案案 例例(1)设计一个Windows应用程序,窗体上放置一个TextBox控件。要求:每当用户单击窗体空白处时,文本框都会增加一行文字来反映单击的次数,例如,“第5次单击窗体”。(2)编写一个简易的计算器。要求:实现整数的加减乘除运算。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《C#程序设计及基于工作过程的项目开发》课件第4章.ppt
    链接地址:https://www.163wenku.com/p-8088709.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库