,VB   工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛,VB
您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > VB > 正文
VB表格控件总览与例程分析
[文章信息]
作者:冯杰
时间:2003-09-06
出处:yesky
责任编辑:方舟
[文章导读]
本文结合例程来对VB中的表格控件进行详尽的分析总结
advertisement
热点推荐
· 深入探讨SQL Server 2000对XML的支持
· Swing(空)
· 3DS Stodio Max 宝典
· 中小企业服务器配置方案--前 言
· 中小企业服务器配置方案--代理接入服务器(3)
[正文]

上一页  1 2  

  二.例程分析:

  以上只是介绍了表格控件经常使用的属性,还有很多其他重要的属性这里限于篇幅就不一样讲解了,如果读者有兴趣的话可以参考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

  三.小结:

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


上一页  1 2  

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
,VB相关内容,VB焦点新闻
  • 在VB中用DAO实现数据库编程
  • 用VB设计小型网络管理系统
  • VB6将XML数据传入TreeView控件
  • 递归过程在VB中的应用实例
  • FVD刺激高清碟机加速商业化 抢占商机最重要
  • 3家搜索引擎集体诉讼8848 吕春维未敢出席
  • 杨元庆:没有准备不会获批的备用方案
  • 军队信息化诞生新领域 电子军务呼之欲出
  • 世界经济论坛公布信息化程度全球最新排名
  • 2004政务绩效评估:政府门户尚处于发展阶段
  • 甲骨文出资5.15亿美元 意图收购RetekInc
  • 技术并购:帮你突破传统增长的“天花板”
  • ,VBAdvertisement