任务七利用高级控件完善系统.ppt

上传人:sh****n 文档编号:12763927 上传时间:2020-05-23 格式:PPT 页数:47 大小:849.50KB
返回 下载 相关 举报
任务七利用高级控件完善系统.ppt_第1页
第1页 / 共47页
任务七利用高级控件完善系统.ppt_第2页
第2页 / 共47页
任务七利用高级控件完善系统.ppt_第3页
第3页 / 共47页
点击查看更多>>
资源描述
VB.NET程序设计,任务七利用高级控件完善系统,本章学习目标:掌握TreeView、Splitter控件的使用了解过程的递归调用TreeView控件中显示数据库中的数据掌握DataGridView控件的使用掌握DataGrid控件的使用(选学),目标,每个企业或机构都有层次性,在程序中要显示出企业或机构的组织关系,就要利用树结构啦。怎样把存放在数据库中的数据显示成树的结构?,问题的引入,任务:在机构设计和编码窗体中增加TreeView、Splitter控件。可以把TreeView中的数据保存到数据库,同时也能把数据库中的数据在TreeView上显示出来,任务,任务:在DataGridView控件中显示数据库中的数据,任务,DataGridView控件,TreeView控件用于创建具有树形节点的层次结构列表该控件中每个节点还可以包含子节点父节点能够以展开或折叠方式显示项目列表树状列表的每个节点都是TreeNode类的实例,TreeView控件的相关知识,使用TreeView控件设计树状列表,TreeView控件的常用属性、方法和事件:,使用TreeView控件设计树状列表,树状列表的每个节点都是TreeNode类的实例,注意每个节点TreeNode还有一个Nodes属性。TreeNode类常用属性、方法:,使用TreeView控件设计树状列表,Nodes属性是TreeNodeCollection类的一个实例,是树状列表中所有节点构成的集合。可以通过Nodes(索引值)来获得索引位置的节点,第一个节点的索引为0,第二个为1,依次类推。TreeNodeCollection类的常用方法如下:,设计窗体时在TreeView中添加节点的步骤,拖动TreeView控件到窗体中单击选中Nodes属性,然后单击省略号按钮,打开“树节点编辑器”单击“添加根”按钮添加根节点单击“添加子项”按钮添加当前节点的子节点单击“删除”按钮删除当前节点,程序运行时在TreeView中加入节点的方法是:使用TreeView控件Nodes属性的Add方法来加入根节点,使用某个节点的Nodes属性的Add方法来加入子节点。如要建立如图所示的数视图的代码:,TreeView1.Nodes.Add(“省医药集团”)DimnewNodeAsTreeNodenewNode=newTreeNode(“省医药集团机关”)TreeView1.Nodes(0).Nodes.Add(newNode)newNode.Nodes.Add(“董事会秘书处”)newNode=newTreeNode(“省医药公司”)TreeView1.Nodes(0).Nodes.Add(newNode)第1个根节点下添加子节点newNode.Nodes.Add(“经理办公室”)在省医药公司节点下添加子节点TreeView1.Nodes.Remove(TreeView1.SelectedNode)删除选定的节点,程序运行时在TreeView中添加节点,参考代码1,随堂练习,1、在窗体设计中创建如图的树视图。2、然后再利用代码来创建如图的树视图,参考代码2,Splitter控件,Splitter控件用于在运行时调整停靠控件的大小。Splitter控件常用于窗体上控件所显示的数据长度可变,如Windows资源管理器,它的数据窗格所包含的信息在不同的时间有不同的宽度,Splitter控件,为使用户能够在运行时调整停靠控件的大小,先将调整大小的控件停靠在容器的一条边缘(Dock属性),然后将Splitter控件停靠在该容器的同一侧。如图所示样式设置属性如下:TreeView1.Dock=LeftSplitter1.Dock=LeftPanel1.Dock=Fill,Panel控件,过程的递归调用,SubF1()F1()EndSub,SubF1()F2()EndSubSubF2()F1()EndSub,图1,图2,在调用一个过程中又出现直接或间接地调用该过程本身,称为过程的递归调用。图1在调用F1的过程中,又要调用F1过程,这就是直接调用本过程图2在调用F1的过程中要调用F2,而在调用F2过程中又要调用F1,这就是间接调用过程本身,过程的递归调用,例如:有3个人坐在一起,问第3个人多少岁?他说比第2个人大2岁。问第2个人岁数,他说比第1个人大2岁。最后问第1个人,他说10岁,请问第3人多大,上面两种递归调用都是无终止的自身调用,这是不应该出现的。只应该出现次数有限的、有终止的递归调用。这可以用条件控制,只有某个条件成立才继续执行递归调用,否则不再继续。,过程的递归调用,显然该例子是个递归问题。要求第3个人的年龄,就要知道第2个人的年龄,而第2个人的年龄也不知道,他的年龄取决于第1个人的年龄。age(3)=age(2)+2age(2)=age(1)+2age(1)=10其过程如下:,age(3)=age(2)+2age(3)=14age(2)=age(1)+2age(2)=12age(1)=10,过程的递归调用,从图可知,求解分成两个阶段:第一个阶段是”回推”,即将第n个人的年龄表示为第(n-1)个人年龄,直到第1个人的年龄。此时age(1)已知,不必再前推。然后开始第二阶段,采用递推方法,从第1个人的已知推算出第2个人的年龄。一个递归的问题可以分为“回推”和“递推”两个阶段。要经历许多步才能求出最后的值,还必须要有一个结束递归的条件。例如,age(1)=10,就是使递归结束的条件,过程的递归调用,可以用一个函数来描述上述过程:Functionage(ByValnasInteger)AsIntegerDimcAsIntegerifn=1thenc=10elsec=age(n-1)+2递归调用EndifreturncEndFunction,Age(3)得到age(3),c=age(2)+2,c=age(1)+2,c=10,age函数n=3,age函数n=2,age函数n=1,Age(1)=10,Age(2)=12,Age(3)=14,过程的递归调用,显示TreeView控件中的所有节点SubPrintNodes()ForEachtrNodeAsTreeNodeintreeView1.NodesPrintRecursive(trNode)NextEndSubSubPrintRecursive(ByValtrNodeAsTreeNode)MessageBox.Show(trNode.Text)ForEachtnAsTreeNodeintrNodes.NodesPrintRecursive(tn)递归调用NextEndSub,遍历TreeView控件中每个节点,利用递归方法可完成此操作,该方法循环访问每个树集合中的每个节点。,从数据库中得到数据在TreeView控件显示,有如下的数据表(节点表):,该数据表中记录如下,从数据表记录中:ParentIndex=-1表示该节点为TreeView控件的根节点.表中对应的TreeView控件节点如图所示:,从数据表中以absIndex字段顺序查询出数据调用InitTree(treeView1.Nodes,“-1”)过程。该过程如下SubInitTree(ByRefnodesAsTreeNodeCollection,ByValsParentIndexAsString)DimtmpNodeAsTreeNode,absIndexAsString选出数据源中ParentIndex为sParentIndex数据行,放在行集合DataRow的drs中循环添加TreeNode,即添加ParentIndex=sParentIndex的所有记录(子节点)ForEachdrAsDataRowIndrs获得节点所需数据tmpNode=NewTreeNodetmpNode.Text=dr(类别)absIndex=dr(AbsIndex)nodes.Add(tmpNode)添加节点递归调用,添加子节点下的所有子节点InitTree(nodes(nodes.Count-1).Nodes,absIndex)NextEndSub,从数据库中得到数据在TreeView控件显示,要利用上面数据表中的数据在TreeView控件上显示,也要用到递归方法,随堂练习,利用数据库节点表中是数据,来创建如下的树视图,关于DataGridView控件,DataGridView控件具有极高的可配置性和可扩展性,它提供大量的属性、方法和事件,可以用来对该控件的外观和行为进行自定义。当需要在Windows窗体应用程序中显示表格数据时,应首先考虑使用DataGridView控件,然后再考虑使用其他控件(例如DataGrid)。一般设置两个属性:DataSource:某个数据集对象DataMember:该数据集对象的某个表,用代码为DataGridView控件获取数据及设置一些属性,在属性窗口设置DataGridView的属性,小结,本任务学习了TreeView、DataGridView等高级控件的使用和过程的递归调用,完成TreeView控件中的节点在数据库的保存,以及数据库中的数据在TreeView控件上的显示,习题,以下有关DataGrid控件的内容为选学内容,关于DataGrid控件,DataGrid控件用于显示数据表中的数据,该控件可用来显示单个表,也可以显示多个不相关的表,也可以显示多个相关的表。,若工具箱中找不到DataGrid控件,可以在“所用Windows窗体”分组工具箱中,右键,然后选择“选择项”,在出现的窗口中,选择“.NETFramework组件”选项卡,找到“DataGrid”然后在其前面打勾。然后点“确定”。那么DataGrid就添加到工具箱中。,DataGrid控件用于显示数据表中的数据,该控件可用来显示单个表,也可以显示多个不相关的表,也可以显示多个相关的表单个表:该表数据显示在一个网格中多个不相关的表:网格可显示一个树视图,可通过浏览该树视图找到想要显示的表。多个相关表:指定让网格显示父表。父表中的记录允许用户定位到相关的子行,DataGrid控件的相关知识,DataGrid控件应在设计时使用DataSource和DataMember属性,或在运行时使用SetDataBinding方法将其绑定到数据源。对于DataGrid有效的数据源包括:DataTable类对象、DataView类对象、DataSet类对象和DataViewManager类对象等。,DataGrid控件的相关知识,在DataGrid控件中显示数据,DataGrid控件显示数据表中的数据,有下面两种方法:在程序中写代码显示数据表数据窗体设计时显示数据表的数据,利用代码在DataGrid控件中显示数据,利用程序代码在DataGrid控件中显示单个数据表数据,DimsConnStringAsString=“连接字符串DimMycnAsNewOleDbConnection(sConnString)DimsqlStrAsString=“Select*from表名”DimmyDataAdapterAsNewOleDbDataAdapter(sqlStr,Mycn)DimmyDataSetAsNewDataSet()myDataAdapter.Fill(ds,“表名”)将数据集绑定到DataGrid控件上dataGrid1.SetDataBinding(ds,”表名”),随堂练习,利用代码在DataGrid中显示数据表中的数据,将使用OleDbDataAdapter控件将数据库引入程序,然后利用DataGrid控件,将数据显示出来。同时该控件还具有更新数据库数据的功能。操作过程如下:将OleDbDataAdapter控件从工具箱的数据工具组中拖入设计窗口中,此时出现数据适配器配置向导单击下一步按钮,进入选择数据连接页面。单击新建连接按钮出现数据连接属性对话框,在提供程序选项卡中选择MicrosoftJet4.0OLEDBProvider,在连接选项卡中选择要连接到的Access数据库。单击测试连接按钮,显现“测试连接成功”对话框,说明数据库连接成功,窗体设计时在DataGrid控件中显示数据,单击确定按钮,返回选择您的数据连接对话框,单击下一步按钮,进入选择查询类型界面中,选择使用SQL语句单击下一步按钮,进入生成SQL语句界面单击查询生成器按钮,出现查询生成器和添加表对话框。选择你要显示的数据表。在查询生成器中选择要查询和列单击确定按钮返回生成SQL语句界面。确定查询无误后,单击下一步按钮,出现查看向导结果界面单击确定按钮,返回设计窗口中,选择OleDbDataAdapter1,在属性窗口出现生成数据集选项。,窗体设计时在DataGrid控件中显示数据(续),单击生成数据集选项,出现生成数据集对话框。使用默认选项,单击确定按钮,生成数据集合从工具箱的Windows窗体中拖动DataGrid控件到设计窗口设置DataGrid控件的DataSource属性为刚才生成的数据集,选择DataMemeber属性为要查询的表名最后,要在要查看数据事件写如下代码OleDbDataAdapter1.Fill(DataSet11,”表名”),窗体设计时在DataGrid控件中显示数据(续),随堂练习,在窗体中设计在DataGrid中显示数据表中的数据,DataGrid控件的表样式指定了特定表的格式设置,每个表一次只能定义一个表样式,可通过DataGridTableStyles类的实例来设置表样式可借助DataGridColumnStyles类实例来创建一组自定义列样式。在窗体设计时设置数据表的表样式和列样式的步骤如下:选择窗体上的DataGrid控件,在“属性”窗口中,选择TableStyles属性并单击省略号,将会打开”DataGridTableStyle集合编辑器”对话框。单击添加按钮添加表样式后,在MappingName属性中,为表样式设置映射名称。映射名称用于指定哪个表使用该样式,设置DataGrid控件的表样式和列样式,单击添加按钮添加表样式后,在MappingName属性中,为表样式设置映射名称。映射名称用于指定哪个表使用该样式,设置DataGrid控件的表样式和列样式,在表样式中添加列样式设置列的显示格式。在“DataGridTableStyles集合编辑器”对话框中,选择GridColumnStyle属性并单击省略号按钮,将打开“GridColumnStyle集合编辑器”对话框。如图所示,设置DataGrid控件的表样式和列样式,单击添加,将一个列样式添加到集合中在MappingName属性中,为列样式设置映射名称。映射名称用于指定哪个字段应该使用这个列样式。在“GridColumnStyle集合编辑器”对话框中还可设置该列的列宽、对齐方式、列标题等。重复上一步,为更多的列设置列样式。,设置DataGrid控件的表样式和列样式,随堂练习,在窗体中设计在DataGrid中显示数据表中的数据,并修改DataGrid控件中的表样式和列样式,通过代码方式设置DataGrid控件的样式,具体步骤如下:创建一个表样式对象DataGridTableStyle并设置其属性创建一些列样式对象DataGridTextBoxColumn并设置其属性将列样式对象添加到表样式的列样式集合(GridColumnStyles)中将表样式对象添加到DataGrid控件的表样式集合(TableStyles)中,代码设置DataGrid控件的样式,代码设置DataGrid控件的样式(续),DimdgsAsNewDataGridTableStyles定义一个表样式dgs.MappingName=“表名”Dimdgtc1AsNewDataGridTextBoxColumn定义两个列样式dgtc1.MappingName=“字段名”dgtc1.HeaderText=“字段标题名”Dimdgtc2AsNewDataGridTextBoxColumndgtc2.MappingName=“字段名”dgtc2.HeaderText=“字段标题名”将列样式添加到表样式的列样式集合中dgs.GridColumnStyles.Add(dgtc1)dgs.GridColumnStyles.Add(dgtc2)将表样式添加到DataGrid控件的表样式集合中DataGrid1.TableStyles.Add(dgs),随堂练习,利用代码修改DataGrid控件中的表样式和列样式,并在DataGrid中显示数据表中的数据,,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!