一、表格控件
Microsoft Hierarchical FlexGrid (MSHFlexGrid)、Microsoft FlexGrid (MSFlexGrid)、DataGrid是VB本身部件库中为开发者提供的三个常用的表格控件。通过这几个控件可以对数据库中的记录进行读写操作。
MSHFlexGrid控件可以显示网格数据,在对包含字符串和图片的表格进行分类、合并以及格式化时,具有完全的灵活性;还可以绑定到一个数据控件(如ADO、Data)上,对数据库中的数据进行读取,但是数据只能读,不能修改。
DataGrid控件实际上是一个固定的列集合,每一列的行数都是不确定的。它的每一个单元格都可以包含文本值,但不能链接或内嵌对象。可以在代码中指定当前单元格,或者用户可以使用鼠标或箭头键在运行时改变它。通过在单元格中键入或编程的方式,单元格可以交互地编辑。单元格能够被单独地选定或按照行来选定。也就是说,可以绑定到一个数据控件上,对数据库中的数据进行读写,即数据可读可写,但是这个控件的每一列的行数都是不确定的,而且它的每一个单元格都不能链接或内嵌对象。
综上所述,这几个表格控件虽然有其优点,但又都有局限性。程序员如果需要使用具有读写功能,而又不想与数据控件进行绑定的表格控件,就要自己来编写大量的代码,既麻烦又容易出错。下面介绍一个已经写好的表格控件代码,既把这三个控件的优点结合在一起,又回避了三者的局限性,让程序员的编程更容易更方便!
二、自定义控件
按照以上步骤制作的自定义控件UCXgrid 具备原表格控见的所有功能,同时还具有新的功能如下:据grid1的Rows属性设置用户表格的行数,Cols属性设置用户表格的列数;在表格上有一个文本输入区,跟随光标移动,输入的内容可以显示在相应的表格中;文本输入区跟随光标移动,还可以用键盘上的方向键来控制。
三、界面设计
在VB6.0中建立一个ActiveX工程,工程名称改为“UCXgrid”,在工具箱部件中添加MSHFLXGD.ocx 文件(或者在工程的部件中添加MSHFlexGrid控件),此处也可将MSHFlexGrid换成MSFlexGrid控件,将刚添加的控件加到用户控件内,名称改为grid1。再添加一个文本控件text2,其边框设为无。
四、控件制作
1.添加新功能
在代码编辑区编写如下代码:
'用户自定义过程
'根据Rows和Cols属性,加载表格的行数和列数,以及行标题和列的标题
Sub grid()
Dim j As Integer
With Grid1
For j = 1 To .Cols - 1
.TextMatrix(0, j) = "列" & j
Next j
For j = 1 To .Rows - 1
|