欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    windows应用开发.ppt

    • 资源ID:3486377       资源大小:2.26MB        全文页数:75页
    • 资源格式: PPT        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    windows应用开发.ppt

    第8章 Windows项目开发,第8章 widows应用开发,窗体Form类 Windows窗体类层次结构 控件与组件 菜单和工具栏 MDI窗体 用户控件,Windows开发的基本步骤,8.1系统开发基本步骤,系统设计,需求分析,数据库设计,界面设计,代码设计,测试发布,超市进销存管理系统功能,8.1系统开发基本步骤,作业8.1,根据商品进销存管理系统功能框架完成其数据库设计 (要求:用SQL Server2005(2008)版本),8.1系统开发基本步骤,超市进销存管理系统业务流程图,8.1系统开发基本步骤,第8章 widows应用开发,窗体控件描述,可视化类 属性设计 方法调用 事件机制(消息循环),登录窗体界面设计,8.1系统开发基本步骤,Form类,8.2 Form类,窗体是应用程序的基本单元,表示组成应用程序的 用户界面的窗口或对话框 。 当向项目添加窗体时,可选择从框架提供的Form类 继承还是从以前创建的窗体继承。 窗体是容器类控件,从Control类继承。 窗体常有单文档界面(SDI)、资源管理器样式界 面、多文档界面(MDI)。,Form类常用事件,8.2 Form类,说明,Activated事件: 发生于Load之后,即当控件被传递到窗体上时,以后每次显示该窗体时,Activate事件将再次发生。但Load事件不再发生。所以若某个窗体可能被多次显示,则应把初始化步骤放入其中而非Load事件中。,例:若希望把焦点设置在新窗体上某个特定的控件,则应在该事件方法中调用Focus方法。,8.2 Form类,Form类常用属性,Visible 属性: 在窗体的可见性在事件中,若希望 Windows 应用程序的主窗体在应用程序启动时不可见,设 Visible =flase无效。 因为通常启动窗体的生存期决定了应用程序的生存期,只要将应用程序的启动变为一个模块即可有效。因为当“关闭”模块时,应用程序的生存期也随之结束。,8.2 Form类,TopMost 属性,顶端的窗体始终位于指定应用程序中所有窗口的前面。例如,可能希望将浮动工具窗口保持在应用程序主窗口的前面。TopMost 属性控制窗体是否为最顶端的窗体。,说明:,即使最顶端的窗体不处于活动状态,它也会浮在其他非顶端窗体之前。,8.2 Form类,FormBorderStyle 属性,8.2 Form类,Location 属性,指定窗体在计算机屏幕左上角的显示位置。它以像素为单位指定窗体的位置。还需要设置 StartPosition 属性,以指示显示区域的边界。 Windows应用程序的 StartPosition 属性的默认设置是“WindowsDefaultLocation”,该设置通知操作系统在启动时根据当前硬件计算该窗体的最佳位置。,8.2 Form类,Application类,表示整个应用程序,用于管理程序、线程和Windows 消息,通常用来显示一个应用程序的最初窗体。它是Sealed类,也不能创建实例对象,它属System.Windows.Form命名空间。,Run: 在当前线程下启动一个标准消息循环。 若已提供窗体,则令该窗体可见。,常用的static方法:,8.2 Form类,Control基类常用属性,8.3 Control类,Control基类常用事件,8.3 Control类,Windows常用控件,8.3 Control类,Label控件类,8.3 Control类,显示提示信息。,LinkLabel控件类,8.3 Control类,可显示超链接的 Windows 标签控件 。,TextBox控件类,8.3 Control类,可用于显示或编辑无格式文本的控件 。默认最多输入 2048 个字符。 MultiLine=true,则最多可输入 32 KB 的文本,TextBox控件类常用方法与事件,8.3 Control类,按钮Button控件类,8.3 Control类,表示一个响应 ButtonBase .Click 事件的 Windows 按钮控件,按钮Button控件类,8.3 Control类,btn.FlatStyle = FlatStyle.Flat; /样式 btn.ForeColor = Color.Transparent; /前景 btn.BackColor = Color.Transparent; /去背景 btn.FlatAppearance.BorderSize = 0; /去边线 btn.FlatAppearance.MouseOverBackColor = Color.Transparent; /鼠标经过 btn.FlatAppearance.MouseDownBackColor = Color.Transparent; /鼠标按下,设置透明背景的Button,例:设计一个加法器,8.2 Form类,思考,如何在第一个文本框按下回车键后自动进入 下一个文本框 如何使提示信息更人性化。例第一个文本框 输入错误时就给出出错信息 何时采用异常机制好,是在单击“计算”按钮 时?还是,完善加法器,使其更具人机交互性,8.2 Form类,容错性设计,8.2 Form类,private void textBox1_KeyPress(object sender, KeyPressEventArgs e) if (e.KeyChar= '0' ,KeyPressEventArgs事件参数e.Handled属性,将 Handled 设置为 true,则取消 KeyPress 事件,容错性设计_通用文本框按键事件代码,8.2 Form类,private void txtNum1_KeyPress(object sender, KeyPressEventArgs e) TextBox t = (TextBox)sender; if (t != null) if (t.Name = “txtNum1“) if (e.KeyChar = (Char)Keys.Enter) txtNum2.Focus(); if (e.KeyChar = '0' ,作业,8.2 Form类,完善两个数的加法运算,使其满足,使用异常机制使其具有较好的容错性 合理使用KeyPress事件实现焦点转移,ListBox控件类,8.3 Control类,显示可选列表项。,ListBox.Items集合常用方法,8.3 Control类,可以在在设计时使用Items属性向列表添加项。,ListBox控件类属性/事件,8.3 Control类,组合框ComboBox控件类,8.3 Control类,由文本框和列表框组成,控件分两部分显示:,其他属性、方法、事件与ListBox类似,作业,8.3 Control类,下载并模拟QQ登录界面,单选按钮RadioButton控件类,8.3 Control类,派生于ButtonBase类。可使用GroupBox控件将多个RadioButton组成一组。否则默认窗体中所有RadioButon是同一个组。,注意Form_Activated事件对初始化的作用。,单选按钮RadioButton控件类,8.3 Control类,派生于ButtonBase类。可使用GroupBox控件将多个RadioButton组成一组。否则默认窗体中所有RadioButon是同一个组。,注意Form_Activated事件对初始化的作用。,复选框CheckBox控件类,8.3 Control类,派生于ButtonBase类。可使用GroupBox控件将多个RadioButton组成一组。否则默认窗体中所有RadioButon是同一个组。,其他参见RadioButton,分组框Group Box控件类,8.3 Control类,容器类控件。类似于 Panel 、TabControl、 Splittert 等控件。 GroupBox 控件可以显示标题(分组框的标题由 Text属性定义)。 Panel 控件有滚动条 TabControl选项卡控件,用于显示多个选项卡,列表视图ListView控件类,8.3 Control类,创建类似于 Windows 资源管理器右窗格的用户界面,8.3 Control类,例,8.3 Control类,private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) int i; string dir = Directory.GetDirectories(comboBox1.SelectedItem.ToString(); / listView1.BeginUpdate(); listView1.Clear(); listView1.View = View.Details; ColumnHeader a0 = new ColumnHeader(); a0.Text = “名称“; a0.Width = 200; ColumnHeader a1 = new ColumnHeader(); a1.Text = “大小“; a1.Width = 150; ColumnHeader a2 = new ColumnHeader(); a2.Text = “类型“; a2.Width = 200; ColumnHeader a3 = new ColumnHeader(); a3.Text = “修改日期“; a3.Width = 100; listView1.Columns.AddRange(new ColumnHeader a0, a1, a2, a3 ); for(i=0;idir.Length;i+) DirectoryInfo d = new DirectoryInfo(diri); listView1.Items.Add(new ListViewItem(new stringd.Name,“ “,“文件夹“,d.LastAccessTime.ToLongDateString(),0); string s2 = Directory.GetFiles(comboBox1.SelectedItem.ToString() ); foreach (string k in s2) FileInfo info = new FileInfo(k); ListViewItem item = new ListViewItem(new string info.Name, info.Length.ToString(),“文件 “, info.LastWriteTime.ToString() ,2); this.listView1.Items.Add(item); / listView1.EndUpdate(); ,状态栏(StatusStrip)控件类,8.3 Control类,StatusStrip控件上可以有状态栏面板,用于显示指示状态的文本或图标,或一系列指示进程正在执行的动画图标(如:指示正在保存文档)。,指示某个页面的 URL。 提供有关页、节位置和编辑模式的信息。 进度条(ProgressBar)控件,例:,图片框(PictureBox),8.3 Control类,显示位图bmp、GIF/PNG、JPEG、图元文件(wmf)或图标格式(ico)的图片。,定时器Timer控件类,8.3 Control类,按用户指定的时间间隔来触发事件。 Enabled属性: 指定定时器是否可以触发事件。默认值为 false。 InterVal属性: 指定定时器控件触发的时间间隔,单位为毫秒。 Tick事件: 当运行每当到达指定时间间隔,就会触发这个事件。 Start方法: 启动定时器实例。,菜单MenuStrip类,8.4 菜单类,应用程序可以为不同的上下文(应用程序状态)显示不同的菜单。通过包含多个 MenuStrip对象,可以处理用户与应用程序交互时应用程序的不同状态。单击菜单上的某个项常是完成打开一个子菜单或导致应用程序执行一个命令。,“-”子菜单分组线 “&”热键标识,菜单设计时的特殊符号,菜单MenuStrip类,8.4 菜单类,ToolStripMenuItem类,表示 MenuStrip 或 ContextMenuStrip 上显示的可选选项。提供配置菜单项的外观和功能的属性,ToolStripItem类,8.4 菜单类,表示对 ToolStrip 或 ToolStripDropDown 可以包含的所有元素的事件和布局进行管理的基类,说 明,8.4 菜单类,删除一级菜单项是将该菜单项从相应的 MenuStrip 的Items集合的Remove方法中删除。 若此菜单项需再次使用,最好是隐藏或暂时禁用该 菜单项而不是删除它。 删除二级菜单或三级菜单,使用其父级对象 ToolStripMenuItem的DropDownItems集合的Remove 方法。,contextMenuStrip控件类,8.4 菜单类,设计时与MenuStrip菜单一致,关联时,将控件或对象的ContextMenustrip属性设为快捷菜单名称既可。,ToolStrip控件类,设计时与MenuStrip菜单相似。,例,8.4 菜单类,private void toolStripButton1_Click(object sender, EventArgs e) /工具栏中第一个命令按钮的默认事件名 Font newFont=new Font(this.rtfBox.SelectionFont,this.rtfBox.SelectionFont.Bold ? rtfBox.SelectionFont.Style ,例,8.4 菜单类,private void ToolStripMenuItemRoman_Click(object sender, EventArgs e) try Font newFont = new Font(“Times New Roman“, rtfBox.SelectionFont.Size + 4, rtfBox.SelectionFont.Style); rtfBox.SelectionFont = newFont; catch (Exception) MessageBox.Show(“error!“); ,也可在快捷菜单的单击事件中进行判断,简化程序,/因为参数是FontStyle,所以用位运算处理,只更改Bold位,例:通过工具栏相关属性判断是哪个项被单击处理,8.4 菜单类,private void toolStrip1_ItemClicked(object sender , ToolStripItemClickedEventArgse) for (int i = 0; i (ToolStrip)(sender).Items.Count; i+) if (ToolStrip)(sender).Itemsi = e.ClickedItem) MessageBox.Show(e.ClickedItem.ToString(); Font newFont = new Font(this.richTextBox1.SelectionFont, this.richTextBox1.SelectionFont.Bold ? richTextBox1.SelectionFont.Style ,e.ClickedItem返回被单击的工具栏项ToolStripButtom,常用.NET对话框类,8.5 常用对话框,commonDialog对话框是在父窗口中显示的窗口,窗体对话框分类,如“关于”对话框和“打开文件”对话框,在得到响应前阻止用户切换到其他窗体和对话框。,无模式对话框,如“单词查找”对话框,与主窗体并排存在,可相互切换。,8.5 常用对话框,模式对话框,常用对话框,8.5 常用对话框,CommonDialog常用方法和事件表,8.5 常用对话框,DialogResult枚举类型值,8.5 常用对话框,OpenFileDialog类的属性,8.5 常用对话框,说明,8.5 常用对话框,在开发中不应使用目录硬字符串。可使用System.Environment.GetFolderPath()。它接受Environment.SpecialFolder枚举,其中可定义要返回路径的系统目录。 Filter过滤器是一集合,显示于Files of type对应的列表框中。每对用一竖杠字符“|”分隔,每个部分需要两个字符串,所以总是偶数,第一个串定义要在列表框中显示的文本,第二个串对应的扩展名。,8.5 常用对话框,将InitialDirectory设为通用用户模板目录。 String dir=Environment.GetFolderPath (Environment.SpecialFolder.Templates) 对象实例名.InitialDirectory=dir;,例,dlg.Filter=“text documents|*.txt|All File|*.*”; 注:过滤器前后不允许有空格。,例,8.5 常用对话框,有效性验证ValidateNames属性,在试图打开一个文件前,OpenFileDialog可自动执行对文件的有效性验证。 ValidateNames设为true,则检查,若输入无效文件名(例、= )等,并单击OK键后,会自动提示, 此时只有更正文件名或单击cancal之后,才能退出。同时, ValidateNames设为true,就可使用CheckFileExists和CheckPathExists进行文件、路径等有效性验证。,8.5 常用对话框,SaveFileDialog对话框常用属性,8.5 常用对话框,FontDialog对话框,: if (fontDialog1.ShowDialog() = DialogResult.OK) / 文本框对象.Font = fontDialog1.Font; /对选中文本设置字体 RichTextBox实例名.SelectionFont = fontDialog1.Font; ,例,8.6 多窗体关联,多窗体关联,对非模态窗体而言,Close方法将销毁窗体实例。而 模态窗体只是隐藏,在第二次调用ShowDialog时,将 再次显示原实例,从而保留原窗体中的数据。,8.6 多窗体关联,窗体间的值传递,例:从Form1的button_Click事件实现窗体间传值。,private void button1_Click(object sender, EventArgs e) Form2 f = new Form2(); f.a = “form1传递过来的值“; f.Show( ); ,8.6 MDI多文档窗体,多文档界面(MDI),传统上,可编写3种基于Windows的应用程序:,基于对话框的应用程序(Explorer界面)。 单一文档界面(SDI),如记事本、计算器。 多文档界面(MDI),执行方式与SDI相同,但 同时可打开多个窗口。,建立MDI应用程序步骤:,创建MDI父窗体(容器) 创建MDI子窗体,8.6 MDI多文档窗体,8.6 MDI多文档窗体,MainMenu已被Menustrip替代,8.6 MDI多文档窗体,8.6 MDI多文档窗体,MDI应用程序中常用到的类成员,8.6 MDI多文档窗体,8.6 MDI多文档窗体,合并菜单,当MDI父、子窗体都有相同的菜单项时,合并菜单应处理该情况。 在MDI应用程序中,MDI容器窗体自动合并打开的子窗体的菜单。修改菜单项MergeAction 属性,MergeAction 枚举,8.6 MDI多文档窗体,作业设计简单文本编辑器,用RichTextBox控件实现相应功能 有相应的设计文档提交 提交软件. 解决方案命名格式: 专业+班级+学号+姓名+方案名,8.6 MDI多文档窗体,双方菜单的AllowMerge设为:True 父窗体中具有与子窗体菜单相同菜单项,且需要合并者均设MergeAction为:Matchonly。且双方的各菜单项的子菜单项的MergeIndex从0开始编号,需放在最后的可为-1,且子菜单项各项设MergeAction为:insert。 子窗体中菜单项在父窗体中菜单中没有的,可设MergeAction为:insert。且对双方非合并项的MergeIndex从0开始编号。(分隔线也算一项) 设子窗体中菜单Visible为false.,说明,

    注意事项

    本文(windows应用开发.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开