版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计(Visual C# .NET),安徽机电职业技术学院信息工程系 汪 学 文 wxwOOP 2007年9月,第10课 Windows编程,通过使用菜单、对话框、状态栏和工具栏,可以向用户提供便捷的功能或重要信息的提示。 本课主要讲述: 使用通常对话框(包括打开、保存、字体、颜色等) 使用自定义对话框 菜单 工具栏 状态栏 穿插介绍其它常用控件,10.1 通常对话框,我们一切还从这个示例开始:,如何进一步改善用户体验,变成如下:,10.1 通常对话框,10.1.1 打开文件对话框,首先,我们将输入文件名的文本框去掉,改成由用户选择文件。 先完成打开文件的功能,这要用到OpenFi
2、leDialog控件。,OpenFileDialog控件重要属性,DefaultExt:默认的扩展名 Filter:设置当前文件名称过滤器的字符串,如:文本文件(*.txt)|*.txt|C语言文件(*.c)|*.c|所有文件(*.*)|*.* Multiselect:是否允许多选文件,从对话框读取用户信息,DialogResult result = openFileDialog1.ShowDialog(); if (result != DialogResult.OK) return; string filename = openFileDialog1.FileName; StreamRead
3、er sr = new StreamReader(filename,System.Text.Encoding.Default); txtOutput.Text = sr.ReadToEnd(); sr.Close();,10.1.2 “保存文件”对话框,SaveFileDialog重要属性: FileName:第一次在对话框出现的文件,或用户最后一次选择的文件 Filter:对话框中的文件过滤器,应用“保存文件”对话框,DialogResult result = saveFileDialog1.ShowDialog(); if (result != DialogResult.OK) retur
4、n; string filename = saveFileDialog1.FileName; StreamWriter sw = new StreamWriter(filename,false,System.Text.Encoding.Default); sw.Write(txtOutput.Text); sw.Close();,10.2 使用主菜单,有两种菜单形式: 出现在程序上方边缘的,称为主菜单(MainMenu) 右键菜单,又称为上下文菜单(ContextMenu),10.2 使用主菜单,给“我的记事本”增加主菜单。,创建主菜单,向菜单项添加助记符:如输入“文件( if (result
5、 != DialogResult.OK) return; txtOutput.Font = fontDialog1.Font; txtOutput.ForeColor = fontDialog1.Color;,10.4 自定义对话框,通用对话框的内容是固定的,有时需要自己设计对话框的内容。如插入日期时间。 对话框也是窗体(Form),只是该窗体的FormBoderStyle的属性设为FixedDialog。 对话框分为模式对话框和非模式对话框: 模式:用ShowDialog方法显示 非模式:用Show方法显示,创建自定义对话框,添加“Windows窗体” 将该窗体的下列属性进行设置: Form
6、BorderStyle:FixedDialog ControlBox、MinimizeBox、MaximizeBox:false因为对话框没有菜单、滚动条和状态栏,不能调整大小 ShowInTaskBar:false因为对话框不应显示在任务栏上 给对话框添加“确定”和“取消”按钮 设置“确定”按钮的DialogResult属性中为OK(DialogResult.OK) 设置“取消”按钮的DialogResult属性中为Cancel (DialogResult.Cancel)点击这两个按钮时,就会自动关闭对话框。,创建自定义对话框,设置接受和取消行为 设置对话框窗体的AcceptButton属性
7、和CancelButton属性这样就可以确定,按回车键,相当于点击哪个按钮,按ESC键,相当于点击哪个按钮。 添加“确定”按钮等控件的事件处理方法,代码设计(1),给DateTimeForm添加下列字段和属性:,DateTime now = DateTime.Now;/ 记录当前时间 private string nowDateTime = null;/ 存储当前时间的字符串 public string NowDateTime/ 属性,返回当前时间字符串 get return nowDateTime; set nowDateTime = value; ,代码设计(2),Form_Load事件,
8、在对话框上显示当前时间,private void InsertDateTime_Load(object sender, System.EventArgs e) radioLongDate.Text = String.Format(0:D,now); radioShortDate.Text = String.Format(0:d,now); radioLongDateTime.Text = String.Format(0:F,now); radioShortDateTime.Text = String.Format(0:g,now); ,代码设计(3),“确定”按钮的Click事件,设置好日期时
9、间字符串并返回。,private void btnOK_Click(object sender, System.EventArgs e) if ( radioLongDate.Checked ) this.NowDateTime = String.Format(0:D,now); else if ( radioShortDate.Checked ) this.NowDateTime = String.Format(0:d,now); else if ( radioLongDateTime.Checked ) this.NowDateTime = String.Format(0:F,now);
10、else if ( radioShortDateTime.Checked) this.NowDateTime = String.Format(0:g,now); ,10.5 工具栏,现在,我们给“我的记事本”加上工具栏。 工具栏一般是由一些图片按钮组成,所以,我们先要准备一些图片(如图标文件*.ico) 从工具箱中将ImageList控件拖放到窗体中,设置ImageList的Images属性。 再从工具箱中将ToolBar控件拖放到窗体中,设置ImageList属性为刚才的ImageList控件,并设置Buttons属性(即工具栏中有哪些按钮),编写ButtonClick事件处理方法,工具栏上
11、的所有按钮共享同一个Click事件,我们需要确定用户是单击了哪个按钮。 该Click事件带入一个参数e:,private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e) ,编写ButtonClick事件处理方法,如果设置了工具栏各按钮的Text属性,那么我们就可以判断出来用户单击了哪个按钮。 工具栏按钮往往执行的是哪一个菜单的事件,我们可以各按钮的Tag属性中填写上对应的菜单名称 注意,不能在设计器的属性面板中直接填上菜单名称,那么获得的仅是一个字符串,我们
12、需要填上的是对应的菜单对象。 我们可以在Form1_Load事件中设置工具栏各按钮的Tag属性。,代码设计,private void Form1_Load(object sender, System.EventArgs e) tbbOpen.Tag = menuOpen; tbbSave.Tag = menuSave; tbbFont.Tag = menuFont; tbbDateTime.Tag = menuDateTime; ,private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButto
13、nClickEventArgs e) MenuItem mItem = (MenuItem)(e.Button.Tag); mItem.PerformClick(); ,10.6 状态栏,状态栏可以用来显示一些有用的信息,如文件的名称,当前日期,当前光标位置等等。 把StatusBar控件从“工具箱”拖放到 窗体上。 根据情况设置下列属性: Panels:缺少情况下,状态栏不含有窗格。可使用此属性为状态栏添加或删除窗格。 ShowPanels:为true时,显示窗格的内容,为false时,仅显示状态栏的Text属性 SizingGrip:设置右下角是否有可调整窗口大小的控制柄。 Text:状态栏的文本,为状态栏添加窗格,设置StatusBar控件的Panels属性,打开“StatusBarPanel集合编辑器”: AutoSize: Contents:窗格大小取决于显示内容 None:窗格大小固定不变 Spring:窗格共享状态栏上的显示空间 Alignment:对齐方式 Width:窗格宽度 Text:窗格文本 BorderStyle: 为None时不显示边框,为Raised时三维凸起,为Sunken时三维凹陷。,示例:,在状态栏显示文件名 设显示文件名的窗格名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业管理公司应急预案培训
- 治疗性克隆版
- 建筑制图第四章点、直线、平面的投影
- 条形基础工程量计算
- 战略管理案例分析电气
- 关键岗位继任者计划与人才梯队建设方案
- 2026年电工高级工鉴定题库及答案
- 淋巴瘤病理分型与一线方案抉择专家共识(2025版)
- 儿童泌尿系感染规范化中国专家共识(2026版)
- 军事理论 教学大纲
- 部编版五年级上册语文第七单元《习作:我最喜爱的季节》教学课件(新教材)
- 汽车毫米波雷达工程师考试试卷及答案
- 文学概论讲义
- 河南警察学院引进高层次人才考核办法(试行)
- 老年人精神障碍与护理
- 2026年洗发水中国功效洗护生态趋势报告
- 2026年6月英语A级试卷及答案
- DB54∕T 0617-2026 民用供氧工程设计标准
- 医院审方中心工作制度
- 2026年中铝集团校园招聘笔试
- 2025年员工离职交接表模板
评论
0/150
提交评论