分享

体会DataGrid、MSFlexGrid、MSHFlexGrid三种控件

 hdzgx 2019-12-07
一、DataGrid控件
'添加部件"Microsoft  DataGrid Control 6.0 (SP6)(OLEDB)"才能使用DataGrid
DataGrid能绑定ADODC控件,支持数据库对象ADO。
二、MSFlexGrid控件
'添加部件"Microsoft  FlexGrid Control 6.0 (SP6)"才能使用MSFlexGrid
MSFlexgrid能绑定DATA控件,支持数据库对象DAO。
绑定DATA控件支持97数据库,不支持2000以上版本数据库
三、MSHFlexGrid控件
'添加部件"Microsoft Hierarchical FlexGrid Control 6.0  (SP6)(OLEDB)"才能使用MSHFlexGrid
MSHFlexGrid能绑定ADODC控件,支持数据库对象ADO。
MSHFlexGrid控件与MSHFlexGrid控件属性与方法基本相同。但会出现显示长小数位。
体会DataGrid、MSFlexGrid、MSHFlexGrid三种控件
四、以下网上的说法:
DBGrid和另外两个控件最大的区别在于DBGrid允许用户修改数据,而另外两个不允许。如果你要用户修改数据,你应该DBGrid。如果只是显示数据,应该使用MSFlexGrid、MSHFlexGrid,这两个控件显示的选项更多,更好看。而MSFlexGrid和MSHFlexGrid之间的区别,主要是后者支持ADO的层次显示。如果你不使用ADO,可以考虑MSFlexGrid,否则建议使用MSHFlexGrid。

最大的区别在于datagrid能绑定记录集,msflexgrid不能。而mshflexgrid能绑定,所以我一般不用msflexgrid,因为mshflexgrid感觉已包含了msflexgrid的功能,而datagrid与mshflexgrid的区别在于:datagrid能直接在网格输入数据,保存更新等,mshflexgrid只能加多一个textbox才能输入,不过mshflexgrid能合并和设置单元格的颜色这是我最喜欢它之处。
最大的区别在于datagrid、mshflexgrid能绑定记录集,msflexgrid不能。
而datagrid与mshflexgrid的区别在于:
       datagrid能直接在网格输入数据,保存更新等,
       mshflexgrid只能加多一个textbox才能输入,不过mshflexgrid能合并和设置单元格的颜色
MSFlexGrid和MSHFlexGrid之间的区别:
   MSFlexGrid 控件
       Microsoft FlexGrid (MSFlexGrid) 控件可以显示网格数据,也可以对其进行操作。它提供了高度灵活的网格排序、合并和格式设置功能,网格中可以包含字符串和图片。如果将它绑定到一个 Data 控件上,那么 MSFlexGrid 显示的将是只读的数据
  MSHFlexGrid 控件
       Microsoft Hierarchical FlexGrid (MSHFlexGrid) 控件对表格数据进行显示和操作。在对包含字符串和图片的表格进行分类、合并以及格式化时,具有完全的灵活性。当绑定到 Data 控件上时,MSHFlexGrid 所显示的是只读数据
   总之:MSHFLexGrid主要是后者支持ADO的层次显示。如果你不使用ADO,可以考虑MSFlexGrid,否则建议使用MSHFlexGrid。因为mshflexgrid感觉已包含了msflexgrid的功能。

DataGrid、MSFlexGrid、MSHFlexGrid控件刷新问题

请问这几种控件是不是都能实现数据库实时刷新,就我改变数据库的内容,可以立即体现出来。    如能,请列示几个实现的代码

1、推荐解决方案

DataGrid、MSHFlexGrid如果数据绑定了,可以实现实时刷新,配合语句 

如: Adodc1.Refresh 

DataGrid.Refresh 

MSFlexGrid就要麻烦点,因不能数据绑定,需要清空后重新代码插入记录

2、其他解决方案

都可以。在你改变了数据库的内容的,可以在Data控件、ADODC控件上使用Refresh方法来重新打开数据库,这样就可以实时刷新网络控件。 

datagrid与mshflexgrid可以与ADODC控件在设计时绑定,也可以动态绑定。 动态绑定的一般这样: 

ADODC1.Refresh 

set datagrid1.datasource=ADODC1'这是重新绑定,也就等于刷了datagrid 

set MSHFlexGrid.datasource=ADODC1'同上 在设计时绑定的只要执行ADODC1.Refresh就可以了 

msflexgrid可以与data控件在设计时绑定,不能动态绑定。 

data1.Refresh'运行时修改了数据库,只要重新打开数据库,就可以更新msflexgrid 

不需要重新打开数据库。 更新后,使用绑定的记录集 Requery 方法即可。 例如: 

ADODC1.Recordset.Requery 或 rs.Requery 

都可以使被绑定的控件刷新。 

3、其他建议

建议不要用adodc绑定的方式,使用记录集.方法: 

Set DataGrid1.DataSource = rs 

rs.Requery


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多