科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件VB表格控件总览与例程分析

VB表格控件总览与例程分析

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文结合例程来对VB中的表格控件进行详尽的分析总结

作者:冯杰 来源:yesky 2007年10月15日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
二.例程分析:

  以上只是介绍了表格控件经常使用的属性,还有很多其他重要的属性这里限于篇幅就不一样讲解了,如果读者有兴趣的话可以参考MSDN上相关的内容的介绍,下面我这里提供一个例程来巩固前面的知识内容。
例程是使用Flexgrid 控件(由于Data Bound grid和Datagrid比较简单,所以这里就不再介绍了),如果大家手头上用的是MSHFlexgrid控件的话,只需要把名称换为MSFlexGrid1即可。该例程主要实现后台数据库的显示工作,其界面如下:



  主要代码如下:

Dim lastrow% '最后一次鼠标点击的行
Dim lastcol% '最后一次鼠标点击的列
Private Sub Command1_Click()
MsgBox Data1.Database.Recordsets.Count
End Sub

Private Sub Form_Load()
'初始化数据
click = False
lastrow = 1
lastcol = 1

'初始化data控件,进行绑定显示的初始化
Data1.DatabaseName = App.Path & "\db1.mdb"
Data1.RecordSource = "成绩表"

'进行非绑定显示
Data1.Refresh
Data1.Recordset.MoveFirst
MSFlexGrid2.Rows = Data1.Database.Recordsets.Count + 1 '设置总行数
MSFlexGrid2.Cols = Data1.Recordset.Fields.Count + 1 '设置总列数
MSFlexGrid2.GridColor = vbBlue '网格颜色
MSFlexGrid2.ForeColor = vbRed '字体颜色
MSFlexGrid2.GridLines = 1 '设置网格线的属性
MSFlexGrid2.GridLineWidth = 2 '设置网格线的粗细程序,默认为1
MSFlexGrid2.ToolTipText = "非绑定显示" '设置工具提示文本
MSFlexGrid2.BackColorSel = vbGreen '单元格被选中的颜色
Dim i%
Dim j%
'设置列头文本
For i = 1 To MSFlexGrid2.Cols - 1
MSFlexGrid2.TextMatrix(0, i) = Data1.Recordset.Fields(i - 1).Name
Next i
'设置数据
For i = 1 To MSFlexGrid2.Rows - 1 '控制行

For j = 1 To MSFlexGrid2.Cols - 1 '控制列
MSFlexGrid2.TextMatrix(i, j) = Data1.Recordset.Fields(j - 1).Value
Next j
Data1.Recordset.MoveNext
Next i
'设置当前单元格的图象信息
MSFlexGrid2.Col = 0
MSFlexGrid2.Row = 2
Set MSFlexGrid2.CellPicture = LoadPicture(App.Path & "\cell.bmp")
End Sub
'实现鼠标点击一个单元格的背景颜色的改变功能
Private Sub MSFlexGrid2_Click()
MSFlexGrid2.Row = lastrow
MSFlexGrid2.Col = lastcol
MSFlexGrid2.CellBackColor = vbWhite
MSFlexGrid2.Row = MSFlexGrid2.MouseRow
MSFlexGrid2.Col = MSFlexGrid2.MouseCol
MSFlexGrid2.CellBackColor = vbCyan
lastrow = MSFlexGrid2.Row
lastcol = MSFlexGrid2.Col
End Sub

  要在不绑定数据的情况下实现编辑修改的功能,如果对控件不进行改进是无法达到目的的。这里实现的思路是首先判断光标(或者说焦点)在哪个单元格上,然后在在单元格的范围内动态创建一个文本框(不过在vb平台下,可以考虑先在设计时放置一个不可见的文本框,然后通过move方法将其放置到当前单元格并且显示它即可达到相同的目的),其大小正好可以把此单元格给覆盖掉,然后就可以把原来的文本信息附给该文本框,这样就可以直接在文本框内进行编辑修改操作,从而实现了单元格的编辑修改功能,依据这个思想来可以在单元格里面创建下拉列表框,复选框等控件。其实现的核心代码如下:

'实现编辑功能
Private Sub MSFlexGrid3_DblClick()
Text1.Visible = False
'如果初次双击,那么就执行如下代码
If firstclick = True Then
lastclickrow = MSFlexGrid3.Row
lastclickcol = MSFlexGrid3.Col
Text1.Text = MSFlexGrid3.TextMatrix(lastclickrow, lastclickcol)
End If
'将文本框放置到当前单元格处
Dim LeftOfText% '文本框的left属性
Dim TopOfText% '文本框的top属性
Dim selrow% '当前行
Dim selcol% '当前列
selrow = MSFlexGrid3.Row
selcol = MSFlexGrid3.Col
LeftOfText = Frame3.Left + MSFlexGrid3.Left + MSFlexGrid3.ColPos(selcol) + 45
TopOfText = Frame3.Top + MSFlexGrid3.Top + MSFlexGrid3.RowPos(selrow) + 45
Text1.Move LeftOfText, TopOfText, 930, 200
Text1.Visible = True
'如果不是初次双击,那么就执行如下代码
If firstclick = False Then
MSFlexGrid3.TextMatrix(lastclickrow, lastclickcol) = Text1.Text
lastclickrow = MSFlexGrid3.Row
lastclickcol = MSFlexGrid3.Col
End If
Text1.Text = MSFlexGrid3.TextMatrix(selrow, selcol)
'已经不是第一次进行双击操作
firstclick = False
End Sub

  三.小结:

  数据表格控件在实际运用用还有很多技巧,只有不断的在实际编程中积累经验才能达到灵活运用的功效。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章