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

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