首页 VB表格控件总览与例程说明

VB表格控件总览与例程说明

举报
开通vip

VB表格控件总览与例程说明VB表格控件总览与例程说明一.表格控件总览:在VB开发环境中,表格控件在界面开发元素中占有重要的地位。它不仅有外观整洁、表达形式规范的优点,而且更重要的是它较高的信息表现率(就是相对于其他控件来说能够表达更多的信息),随着信息时代的到来,它的应用将更加的广泛。那么在VB平台下,如何操作这一功能强大的控件元素呢?事实上我们知道,VB平台下面的表格控件是相当丰富的,总结下来提供了4种类型:MicrosoftDataBoundgridControl、MicrosoftDatagridControl、MicrosoftFl...

VB表格控件总览与例程说明
VB表格控件总览与例程说明一.表格控件总览:在VB开发环境中,表格控件在界面开发元素中占有重要的地位。它不仅有外观整洁、表达形式 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 的优点,而且更重要的是它较高的信息表现率(就是相对于其他控件来说能够表达更多的信息),随着信息时代的到来,它的应用将更加的广泛。那么在VB平台下,如何操作这一功能强大的控件元素呢?事实上我们知道,VB平台下面的表格控件是相当丰富的, 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 下来提供了4种类型:MicrosoftDataBoundgridControl、MicrosoftDatagridControl、MicrosoftFlexgridControl、MicrosoftHierarchialFlexgridControl.这四种表格各有其特点,下面我们一一讨论。.MicrosoftDataBoundgridControl此控件主要用于数据绑定(可以不绑定,但是因为不提供对单个cell的控制支持,所以实际上这样做是不经济的)。具体说来,就是数据源比较固定的情况下可以使用这种控件。具体使用方法是设定此控件的datasource属性,就可以不用编写任何代码就可以显示该数据源所指向的记录数据。比如可以将datasource设置为一个data控件,而data控件又指向数据库"成绩"的一个"语文"表,那么当程序运行时,它就自动显示此"语文"表的数据。从上面的分析看得出来,这个控件虽然操作方便,但是它也有局限性,就是不能对显示的数据进行灵活的控制操作,比如有些数据允许用户修改,有些数据却不允许用户修改,而此控件却只能提供全部数据源的原子操作:即要么全部允许修改,要么就全部不允许。还有另外此控件也不提供对单个单元格(cell)进行操作,所以提供不了更为个性化的界面风格。.MicrosoftDatagridControl此控件跟前面介绍的DataBoundgridControl控件很相似,也是主要进行绑定操作,而缺点和DataBoundgridControl完全一样。但是它跟DataBoundgridControl不一样的是其数据源的驱动引擎只能是OLED曲式的,不能是DAO比如就可以使用ADO数据控件,不能使用DATA控件。而DataBoundgridControl却刚好和它相反,这一点在开发中一定要注意。.MicrosoftFlexgridControl与MicrosoftHierarchialFlexgridControl.这里重点介绍这两种控件,因为在实际开发中,这两种控件应用的场合更多一些,它不仅能够反映数据,而且也能把数据的修改信息反映到数据库中去,所以弥补了上述两种控件的不足。如果数据不需要修改,那么可以进行绑定操作,其方法跟前面介绍的完全一样,就是通过设置DataSource属性来完成数据的显示工作。但是实际开发中,需要对整个表格控件更为灵活的显示控制。在给出例程之前,有必要对这一控件进行比较详尽的认识:这种控件允许将文本或者图象放置于每个单元格之中,控件的Row与Col属性允许用户在代码中指定当前行和列,当然也可通过操作鼠标和键盘来改变这两个属性,而text属性指明当前单元格的文本。如果单元格的文本太长而不能完全显示出来的话,可以通过将WordWrap属性设置为true来达到显示的目的。下面将比较重要的属性小结如下:DataSource用来指定需要绑定的数据源,比如data控件。Cellpicture用来设定当前单元格的图象,便于显示该图象。此属性不能在设计时使用。Col,Row设定当前列和当前行,注意它们均是从0开始的,如果同时设定它们,可以指定当前的单元格。设计时也不能使用。Cols,Rows设置表格控件总的列数和行数。Hwnd表格句柄,可以结合WindowsAPI对表格控件进行更高级的控制。Text指定当前的单元格的文本内容。TextMatrix(i,j)此属性比较重要,它用来指定第I行和第j列所确定的单元格的文本内容。它等价于下面的代码:MSHFlexGrid1.Rows=iMSHFlexGrid1.Cols=jMSHFlexGrid1.Text=指定的字符串WordWrap为ture时可以在当前单元格换行显示,否则如果要显示的字符的长度超过列宽,那么就不能显示完全。二.例程分析:以上只是介绍了表格控件经常使用的属性,还有很多其他重要的属性这里限于篇幅就不一样讲解了,如果读者有兴趣的话可以参考MSDNt相关的内容的介绍,下面我这里提供一个例程来巩固前面的知识内容。例程是使用Flexgrid控件(由于DataBoundgrid和Datagrid比较简单,所以这里就不再介绍了),如果大家手头上用的是MSHFlexgrid控件的话,只需要把名称换为MSFlexGrid1即可。该例程主要实现后台数据库的显示工作,其界面如下:主要代码如下:Dimlastrow%'最后一次鼠标点击的行Dimlastcol%'最后一次鼠标点击的列PrivateSubCommand1_Click()MsgBoxData1.Database.Recordsets.CountEndSubPrivateSubForm_Load()'初始化数据click=Falselastrow=1lastcol=1'初始化data控件,进行绑定显示的初始化Data1.DatabaseName=App.Path&"\db1.mdb"Data1.RecordSource="成绩表"'进行非绑定显示Data1.RefreshData1.Recordset.MoveFirstMSFlexGrid2.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'设置网格线的粗细程序,默认为1MSFlexGrid2.ToolTipText="非绑定显示"'设置工具提示文本MSFlexGrid2.BackColorSel=vbGreen'单元格被选中的颜色Dimi%Dimj%设置列头文本Fori=1ToMSFlexGrid2.Cols-1MSFlexGrid2.TextMatrix(0,i)=Data1.Recordset.Fields(i-1).NameNexti'设置数据Fori=1ToMSFlexGrid2.Rows-1'控制行Forj=1ToMSFlexGrid2.Cols-1'控制列MSFlexGrid2.TextMatrix(i,j)=Data1.Recordset.Fields(j-1).ValueNextjData1.Recordset.MoveNextNexti'设置当前单元格的图象信息MSFlexGrid2.Col=0MSFlexGrid2.Row=2SetMSFlexGrid2.CellPicture=LoadPicture(App.Path&"\cell.bmp")EndSub'实现鼠标点击一个单元格的背景颜色的改变功能PrivateSubMSFlexGrid2_Click()MSFlexGrid2.Row=lastrowMSFlexGrid2.Col=lastcolMSFlexGrid2.CellBackColor=vbWhiteMSFlexGrid2.Row=MSFlexGrid2.MouseRowMSFlexGrid2.Col=MSFlexGrid2.MouseColMSFlexGrid2.CellBackColor=vbCyanlastrow=MSFlexGrid2.Rowlastcol=MSFlexGrid2.ColEndSub要在不绑定数据的情况下实现编辑修改的功能,如果对控件不进行改进是无法达到目的的。这里实现的思路是首先判断光标(或者说焦点)在哪个单元格上,然后在在单元格的范围内动态创建一个文本框(不过在vb平台下,可以考虑先在设计时放置一个不可见的文本框,然后通过move方法将其放置到当前单元格并且显示它即可达到相同的目的),其大小正好可以把此单元格给覆盖掉,然后就可以把原来的文本信息附给该文本框,这样就可以直接在文本框内进行编辑修改操作,从而实现了单元格的编辑修改功能,依据这个思想来可以在单元格里面创建下拉列表框,复选框等控件。其实现的核心代码如下:'实现编辑功能PrivateSubMSFlexGrid3_DblClick()Text1.Visible=False如果初次双击,那么就执行如下代码Iffirstclick=TrueThenlastclickrow=MSFlexGrid3.Rowlastclickcol=MSFlexGrid3.ColText1.Text=MSFlexGrid3.TextMatrix(lastclickrow,lastclickcol)EndIf'将文本框放置到当前单元格处DimLeftOfText%'文本框的left属性DimTopOfText%'文本框的top属性Dimselrow%'当前行Dimselcol%'当前列selrow=MSFlexGrid3.Rowselcol=MSFlexGrid3.ColLeftOfText=Frame3.Left+MSFlexGrid3.Left+MSFlexGrid3.ColPos(selcol)+45TopOfText=Frame3.Top+MSFlexGrid3.Top+MSFlexGrid3.RowPos(selrow)+45Text1.MoveLeftOfText,TopOfText,930,200Text1.Visible=True'如果不是初次双击,那么就执行如下代码Iffirstclick=FalseThenMSFlexGrid3.TextMatrix(lastclickrow,lastclickcol)=Text1.Textlastclickrow=MSFlexGrid3.Rowlastclickcol=MSFlexGrid3.ColEndIfText1.Text=MSFlexGrid3.TextMatrix(selrow,selcol)'已经不是第一次进行双击操作firstclick=FalseEndSub三.小结:数据表格控件在实际运用用还有很多技巧,只有不断的在实际编程中积累经验才能达到灵活运用的功效。
本文档为【VB表格控件总览与例程说明】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_704284
暂无简介~
格式:doc
大小:11KB
软件:Word
页数:8
分类:
上传时间:2019-09-18
浏览量:0