我要投稿
您当前的位置:57365.com -> 论文中心 -> 计算机论文 -> 软件类论文 -> 论文内容

VB编程中网格控件的选用及使用方法_软件类论文

论文作者:佚名    论文来源:不详    论文栏目:软件类论文    收藏本页
内容提要: The software of visual basic developed by Microsoft corporation is becoming one of the main develop tools at today。 As it's remarkable peculiarity, the Grid control has very great practical and active use。 This topic discusses how to use the grid control of VB to develop pratical software and how to use it conveniently and simply。 微软公司的面对对象的程序开发软件VB(Visual Basic)日益成为当前所流行的主流开发工具。作为其显著的特色之一,VB所提供的网格类控件,在实际的数据库管理系统的开发过程中具有很大的实用性和灵活性。本文旨在讨论在使用VB的实际开发过程中,如何有选择的使用VB所提供的网格类控件以及如何方便、简洁的去使用。

关键词汇: Component-Based Development Virtual Data Management Spread's Calc Engine 构件开发 虚拟数据管理 计算引擎

随着基于构件开发(Component-Based Development)技术的发展,供开发者使用的软件构件越来越多,单就VB中可使用的网格类控件也有许多种。网格类控件常用在数据库管理系统的开发中,用来直观地显示表或视图的二维关系,在对数据的操作上,有些控件也提供了很多便捷的方法。 同样是完成这些显示和操作数据的功能,面对各式各样的控件,选择那种来达到目的,成了软件开发者必须考虑的问题。唯有选择了一个好的控件,才能提高开发效率,增强软件的功能,达到事半功倍的效果。 下面,本人根据自己长期以来积累的实际经验,总结出以下几点网格控件的选用应考虑的方面:

第一,要考虑控件的实际功能。功能强、接口多的控件可以增强应用软件的质量,也可减少编程工作量,当然,这要结合应用需求来定,并不是功能越多越好。提供的功能多了,控件本身就很大,占好几兆空间,增加了程序的冗余代码。另外,一些功能闲置,灵活性太强也可能导致最终用户不易掌握使用。

第二,控件的稳定性要强。作为应用程序的基石,不应选用那些控件本身容易出错,补丁(patch)太多的版本。

第三,控件的易用性要高。选用那些属性配置合理,事件触发机制明晰流畅,易于设计和使用,项目组中的程序员都容易接受掌握的控件。  以下简要介绍几种网格类控件的特点,以供选用。 Grid控件: Grid控件可显示简单的二维表格,不用和数据库直接连接,具有滚动条、行头、列头等特性,运行时可用鼠标调整行列的宽度,可用于浏览数据,若想对数据进行编辑,需结合TextBox控件,或采取其他变通方法。下面所示画面即为日本东京社会调查研究所开发的《要员管理系统》中硬件管理部分的画面。 画面中的下部即为Grid控件,定义其名称为GrdHardComp。使用时,要首先在下图所示的属性窗口中定义其行列数,控制条格式,字体大小,填充格式,鼠标模式等特性。 然后,可以动态的划分其间距: GrdHardComp.ColWidth(0) = GrdHardComp.Width * 1 / 6 GrdHardComp.ColWidth(1) = GrdHardComp.Width * 5 / 24 GrdHardComp.ColWidth(2) = GrdHardComp.Width * 1 / 6 GrdHardComp.ColWidth(3) = GrdHardComp.Width * 1 / 6 GrdHardComp.C olWidth(4) = GrdHardComp.Width * 3 / 24 GrdHardComp.ColWidth(5) = GrdHardComp.Width * 1 / 6 GrdHardComp.ColWidth(6) = GrdHardComp.Width * 1 / 6 Private Hards() As M_Hard 定义其标题: GrdHardComp.Row = 0 ' GrdHardComp.Col = 0 GrdHardComp.FixedAlignment(GrdHardComp.Col) = 2 GrdHardComp.Text = "构成番号" GrdHardComp.Col = 1 GrdHardComp.FixedAlignment(GrdHardComp.Col) = 2 GrdHardComp.Text = "构成机器区分"① … … 在数据向Grid中写入或取出时,为了便于大量的数据同时,简便地写入与修改,可以定义一个类型。如下: Type M_Hard Number As String OrderNum As String MachKind As String MachKindName As String … … End Type (其中Number等均为要输入的图示条目)  ;Private Hards() As M_Hard Hards(),此时就作为数据的传输变量,进行Grid与TextBox之间的数据传输。 数据向类内写入: If HardComp.RecordCount > 0 Then HardComp.MoveFirst Do Until HardComp.EOF ReDim Preserve Hards(H%)// H%为记数变量。 Hards(H%).OrderNum = HardComp![ OrderNum]//输入编号 Hards(H%).MachKind = HardComp![ MachKind]//种类 Hards(H%).MachKindName = HardComp![ MachKindName]//分类名 Hards(H%).MachName = HardComp![ MachName]//名称 … … loop HardComp.MoveFirst 类内数据向Grid内写入: GrdHardComp.Row = H% + 1//记录数统计 GrdHardComp.Col = 0 GrdHardComp.Text = " " & Hards(H%).OrderNum GrdHardComp.Col = 1 GrdHardComp.Text = " " & Hards(H%).MachKind GrdHardComp.Col = 2&nb sp;GrdHardComp.Text = " " & Hards(H%).MachKindName GrdHardComp.Col = 3 GrdHardComp.Text = " " & Hards(H%).MachName GrdHardComp.Col = 4 … … GrdHardComp.Text = " " & Hards(H%).HardLastDate GrdHardComp.Rows = GrdHardComp.Rows + 1//行数加1 HardComp.MoveNext H% = H% + 1 当然,如果使数据真正写入数据库,还需进行数据库的读写操作。Grid只是提供了一个预览的功能,便于数据的修改。 由以上Grid的特点及其使用方法可以看出,在需要对数据库进行大量数据的操作时,为了减少对数据库的直接操作,提高数据库的安全性,使用Grid控件,还是有很大方便的。 Grid是VB在早期版本中就带有的控件,使用简便,稳定性好,在早期的VB开发过程中,使用尤其广泛。但现在与其它控件比较起来功能有些不足。 DBGrid控件: DBGrid是专用来操作数据库的网格控件,可以绑定到Data控件,几乎不用写代码就可方便地对数据进行显示,增加、删除或修改记录, DBGrid具有OnAddNew、BeforeDelete等事件,可在增加新记录或删除修改时对数据进行有效性检验,来实现事务处理功能。DBGrid也可以在设计时编辑网格格式,指定显示字段等,由于它提供了Column、Split、SelBookmarks等对象,更增强了显示和操作数据的能力。 下面是笔者所参与开发的东京社会调查研究所的项目--《健康诊断系统》的一个实例。 图中的Data4控件把数据库和DBGrid直接连起来,DBGrid的题目,项目设置可以在属性窗口里直接做到。在使用时,要注意新数据是先更新数据库,然后才回写到DBGrid里。方法如下: Sql = "SELECT * FROM 表名" //SQL语句 Set Data4.Recordset = MyDB2.OpenRecordset(sSql, dbOpenSnapshot) Data4.Refresh 或: DatMonthPlan.RecordSource = "SELECT * FROM 表名WHERE (((关键字)='" & Key & "')); 如果想对DBGrid中的某个条目进行复制,方法如下: Data4.Recordset.AddNew Data4.Recordset![ 关键字] = Key//关键字索引 Data4.Recordset![记号]= D BGrid.Columns(0).CellValue(DBGrid.GetBookmark(0))//第一列 Data4.Recordset[番号]=DBGrid.Columns(1).CellValue(DBGrid.GetBookmark(0))// 第二列 Data4.Recordset![氏名]=DBGrid.Columns(2).CellValue(DBGrid.GetBookmark(0))//第三列 Data4.Recordset.Update Data4.Refresh//数据库更新 DBGrid.Refresh// DBGrid刷新 如果动态的对DBGrid中的某个栏目进行增减,可以用如下方法: i = 1 //总显示列数记数 Data4.MoveFirst Do Until Data4.EOF DBGrid1.Columns(i).Width = 1600 //定义宽度 DBGrid1.Columns(i).Caption = "年龄" //标题 DBGrid1.Columns(i).DataField = "& 实际数据域 &" DBGrid1.Columns(i).Visible = True //可见性 DBGrid1.Columns(i).Alignment = 1 //DBGrid 控件列中的值的对齐方式 Data4.MoveNext i = i + 1 If&nb

我要投稿   -   广告合作   -   关于本站   -   友情连接   -   网站地图   -   联系我们   -   版权声明   -   设为首页   -   加入收藏   -   网站留言
Copyright © 2009 - 20012 www.www.hxswjs.com All Rights Reserved.57365.com 版权所有