第4章1课程回顾•ADO.NET中调用存储过程的注意事项•如何为ListView控件进行数据绑定2本章节授课目标•会设计SDI和MDI应用程序•掌握窗体继承•掌握TreeView控件的使用•掌握使用ADO.NET操作Oracle数据库3本章任务45SDI和MDI应用程序•基于对话框的应用程序,它们给用户显示一个对话框,该对话框提供了所有的功能•单一文档界面(SDI),这些应用程序显示给用户一个菜单、一个或多个工具栏和一个窗口,在该窗口中,用户可以执行某些任务•多文档界面(MDI),这些应用程序的执行方式与SDI相同,但可以同时打开多个窗口创建MDI应用程序•MDI应用程序至少由两个窗口组成,其中一个窗口叫作MDI容器(Container),也可以叫“主窗口”,用于放置其它窗口,可以在主窗口中显示的窗口叫作MDI子窗口,或“子窗口”•要创建MDI应用程序,把应用程序的主窗口从一个窗体改为MDI容器,只需把窗体的IsMdiContainer属性设置为true即可•要创建一个子窗口,先添加一个新窗体,在主窗体中打开子窗体时,在主窗体中添加下面的代码:ChildForm1form=newChildForm1();//创建子窗体对象form.MdiParent=this;//指定当前窗体为MDI父窗体form.Show();//打开子窗体系统登录界面系统主界面小结1011窗口继承5-1如果每个窗体上的控件都需要在获得焦点时,改变控件的背景颜色,每个窗体上都需要按下回车时,切换到下一个可以获得焦点的控件上,是否需要在每个窗体中书写重复的代码?通过继承,很好很有效地保持界面的一致性和共同行为窗口继承5-2privatevoidBaseForm_KeyDown(objectsender,KeyEventArgse){//判断是否是回车if(e.KeyCode==Keys.Enter){System.Windows.Forms.SendKeys.Send({Tab});}}每个子窗体均具有了回车切换的效果窗口继承5-3protectedvoidText_Enter(objectsender,EventArgse){((TextBox)sender).BackColor=Color.Green;foreach(InputLanguagelanginInputLanguage.InstalledInputLanguages){Console.WriteLine(lang.LayoutName);if(lang.LayoutName==中文(简体)–智能ABC){InputLanguage.CurrentInputLanguage=lang;}}}定义文本框获得焦点的样式和输入法窗口继承5-4protectedvoidText_Leave(objectsender,EventArgse){((TextBox)sender).BackColor=Color.White;}定义文本框失去焦点时恢复颜色设置窗口继承5-5定义文本框失去焦点时恢复颜色设置foreach(Controlctrinthis.Controls){TextBoxt=ctrasTextBox;if(t!=null){t.Enter+=newEventHandler(Text_Enter);t.Leave+=newEventHandler(Text_Leave);}}为每一个文本框控件注册获得焦点和失去焦点事件小结1718TreeView控件使用TreeView控件商品类别信息TreeView控件示例1•使用TreeView控件创建树形菜单,实现–单击子节点,文本框中显示相应节点文本–单击“添加子节点”,在TreeView中添加一个根节点–选中某节点,单击“添加子节点”,在选中节点添加子节点根节点子节点TreeView控件的使用•TreeView控件重要属性和方法属性说明NodesTreeView控件中的所有树节点SelectedNode当前TreeView控件中选定的树节点,如果当前没有选定树节点,返回值为null方法说明AfterSelect选定树节点之后发生TreeView控件的使用•节点对象(TreeNode)的属性属性说明Text节点显示的文本Index节点在所在集合中的索引Parent节点的父节点(TreeNode)Level节点在树形菜单中的层级0、1…..Nodes节点的所有下一级子节点TreeView控件的使用•获取当前选中的节点–this.tvMain.SelectedNode返回TreeNode对象•为TreeView控件添加根节点(一级节点)•为某选中节点添加子节点TreeNoderootNode=newTreeNode(根节点);this.tvMain.Nodes.Add(rootNode);TreeNoderootNode;rootNode=this.tvMain.Nodes.Add(根节点);this.tvMain.SelectedNode.Nodes.Add(node);总结•本章重点讲解了:–MDI应用程序–窗体继承–TreeView控件的动态数据绑定24课余作业•作业–总结本堂课的知识点–完善上机练习,并将练习结果提交。25课后预习•预习内容–三层结构26