VB考试教程:用FlexGrid控件来操纵数据
文章作者 100test 发表时间 2007:03:10 18:31:29
来源 100Test.Com百考试题网
四、用FlexGrid控件来操纵数据
使用FlexGrid ActiveX控件可以在Microsoft Visual Basic的窗体中创建一个电子数据表格,也可称之为网格。FlexGrid ActiveX控件可以在网格中显示任何类型的表格式数据:文本、数字、日期,甚至图形。但是下面将主要学习使用FlexGrid控件显示Microsoft Access数据库的字段和记录。
FlexGrid控件在电子数据表格中分别用行和列来显示数据库表的记录和字段。你可以在FlexGrid对象中进行许多电子数据表格的典型操作,包括选中单元、重置列宽、对齐标题和格式化文本。你可以从用文本填充简单的FlexGrid控件开始,选中文本、设置几个格式选项。接下来,你将进一步深入到把FlexGrid控件绑定到数据库上、显示数据库表、对记录进行排序、在整个数据库中搜索用户定义的字符串文本。
1、将FlexGrid用作通用电子数据表格
FlexGrid是Microsoft Visual Basic 专业版和企业版中包含的ActiveX控件。在工程中使用FlexGrid控件之前,需要在Project(工程)菜单的Components(部件)菜单项打开的对话框中选择Microsoft FlexGrid 6.0 control(即msflxgrd.ocx),把控件添加到工程中的工具箱中。
FlexGrid控件提供了许多电子数据网格传统的组织优点。可以用它来创建货物清单、计算税款、管理帐目、跟踪零件列表和库存清单等等。另外,Microsoft将FlexGrid控件设计为一种可绑定的控件,它可以通过在同一窗体上的Data控件来显示数据库信息。如果你想用原始的表格形式迅速显示数据库信息,那么FlexGrid控件就是最好的选择。
提示:Visual Basic 6.0专业版还提供了一个被称为Hierarchical FlexGridActiveX 的同类电子表格控件(即mshflxgd.ocx)。此控件的用法与FlexGrid控件一样,并且它们有一套相同的属性、方法和事件。但是,HierarchicalFlexGrid控件必须被绑定到ActiveX Data Objects(ADO)控件上,注意ADO控件并不是Visual Basic工具箱中的内部Data控件。“Hierarchical”表示这个控件可以显示由数据库中的多个表创建的记录集。
理解行和列
由FlexGrid控件产生的电子数据网格是一种包括平行的行和垂直的列组成的表格。在缺省情况下,第一行和最左一列作为保留的行标题和列标题,并且用阴影背景色显示。你可以用属性Rows来设置表格中行的数量,用属性Cols来设置表格中列的数量。下图显示了一个带有8行5列的FlexGrid表格的窗体:
FlexGrid控件中的表格数据可以像二维数组那样操作。表格的第一维是行数,第二维是列数。例如,表格最左上角的单元可以用地址0,0(0行,0列)来引用。
向单元中添加文本
用TextMatrix属性向单元中添加文本。
当要把一个值放到FlexGrid的某一个单元中时,需要设置TextMatrix属性来指定单元的位置和一个值。表格中你可以指定任何数值或字符串数据类型的值。
例如,要把单词“Bob”放到第3行第1列的单元中,可以输入如下的程序语句:
MSFlexGrid1.TextMatrix(3,1) = "Bob"
同样,要把数字1500放到第2行第1列的单元中,可以使用如下的语法:
MSFlexGrid1.TextMatrix(2,1)= 1500
在单元中插入图形
使用CellPicture属性来添加图形。
你可以通过使用Set语句、CellPicture属性和LoadPicture函数在FlexGrid表格单元中插入图形。有效的图形类型包括图标文件(.ico)、位图文件(.bmp)和Windows的图元文件(.wmf)。
例如,下列程序语句在表格的指定单元中显示图元文件Coins.wmf:
Set MSFlexGrid1.CellPicture = LoadPicture (“c:\vb\coins.wmf”)
调整单元的高度和宽度
当你向一个单元中添加图形时,FlexGrid控件并不会自动重置单元的大小来显示它。你可以用RowHeight和ColWidth属性来调整单元的高度和宽度,给它们指定一个以Twip为计量单位的数值。
例如,下列语句把表格的第1行和第1列的高度和宽度设置为2000 Twip,括号里的数字分别指出了当前行和当前列:
MSFlexGrid1.RowHeight(1)= 2000
MSFlexGrid1.ColWidth(1)= 2000
直接把这两条语句加入到上面在CellPicture属性中显示图形的Set语句中,单元将会扩大到足以显示整个图形的尺寸。
注意:当改变表格中一个单元的大小时,实际上就改变了那个单元所在的整个行和整个列的大小。
选中单元
使用Row和Col属性选中单元。
如大多数电子数据表格一样,在格式化单元内容之前,必须要在FlexGrid控件中选中它们。在FlexGrid控件中,你可以用程序代码选中单独的单元或一组(相邻的块)的单元。
要选中单独的单元,只要简单的将Row和Col的属性设置到你想选择的行和列即可。你指定的行和列的交叉处就是你选中的单元。
例如,如果要选中表格的单元1,1,可以使用下列程序语句:
MSFlexGrid1.Row = 1
MSFlexGrid1.Col = 1
要选择一个区域的单元时,必须要指定所选区域的开始点和结束点。开始点就是你刚刚用Row和Col属性指定的单元(第1行,第1列以上),