在VB中操作DataGrid视图

转载 2006年05月28日 11:19:00
                     一个“拆分”的网格使最终用户对相同的数据可以拥有多个视图。例如,假设有一个由十个字段组成的大表。在这种情况下,在控件中察看的记录集将有十列宽,除非窗体非常宽,否则用户将无法同时看见所有列的内容。更进一步,假设用户只对第一列和最后一列感兴趣(例如,第一列是名字,最后一列是电话号码)。为了能同时看到在两端的列(不重新安排列的顺序),可以对网格进行拆分。  

                          创建一个 Split 对象
                          在设计时,可以创建一个拆分,具体步骤是:右键单击网格,单击“编辑”,再单击右键,然后单击“拆分”。通过右键单击该控件,并单击“属性”来显示“属性页”对话框,可以编辑这个拆分。可以使用“拆分”选项卡来自定义拆分。要删除一个拆分,右键单击该拆分,并单击“删除”。

                          在运行时,最终用户也可以通过单击位于这个网格控件的左下边的右边的选项卡,以手工方式来拆分该网格(除非不允许这个操作),如下图所示:  

                          默认情况下,DataGrid 控件包含一个 Split 对象。防止最终用户添加拆分的代码为:  
                          DataGrid1.Splits(0).AllowSizing = False  
                          在程序中添加和删除拆分
                          DataGrid 控件包含一个 Split 对象的集合。要在程序中添加拆分,可以使用 Add
                        方法,如下所示:
                          DataGrid1.Splits.Add 1   
                          注意 Add 方法需要新的拆分索引作为其参数。要添加一个拆分,应将这个索引参数设置为 Splits 集合的
                        Count 属性值。  
                          使用 Split 集合的 Add
                        方法,可以在程序中按照所实际需要添加拆分。由于添加多于两个以上的拆分将使网格很难使用,可以使用该集合的
                        Count 属性来限制拆分的数目。 
                          If DataGrid1.Splits.Count < 3 Then ' 添加一个拆分。
                          DataGrid1.Splits.Add DataGrid1.Splits.Count
                          End If  
                          使拆分同步
                          当拆分多于一个时,可能希望控制这些拆分如何滚动。例如,在一个具有三个拆分的网格中,可以决定只让第一个和第三个拆分同步,而让中间的拆分独立地滚动。要同步任何两个(或多个)拆分,只需将每个
                        Split 对象的 ScrollGroup 属性设置为同一个值。  
                          ' 使第一个和第三个 Split 对象同步。
                          With DataGrid1
                          .Splits(0).ScrollGroup = 1
                          .Splits(1).ScrollGroup = 2
                          .Splits(2).ScrollGroup = 1
                          End With  
                          通过设置 Scrollbars 属性,使同步的拆分组只显示一个滚卷条,从而进一步自定义拆分的外观。 
                          控制 Tab 键和箭头键的行为
                          使用 WrapCellPointer、TabAcrossSplits、以及 TabAction
                        属性,可以决定当最终用户按下 tab 键或箭头键时网格的行为。
                            
                            在这三个属性中,TabAction 属性级别最高,它决定 WrapCellPointer 和
                        TabAcrossSplits 这两个属性是否能生效。TabAction 有三个设置值: Control
                        Navigation、Column Navigation 和 Grid Navigation。当该属性设置为
                        Control Navigation 时,按 tab 键将根据 TabIndex
                        将焦点切换到下一个控件。这一设置优先于 WrapCellPointer 和 TabAcrossSplits。
                          WrapCellPointer 属性决定在任何单个的拆分中 tab 键和箭头键的行为。如果该属性设置为
                        True,且当前单元位于最后一列,这时最终用户按 tab
                        键则使第一列的下一行变成当前的单元。不过,如果当前单元位于最后一行的最后一列时,这时就没有地方可以“换行”。  

                          TabAcrossSplits 属性决定当网格中存在两个或多个拆分时 tab
                        和箭头键的行为。如果该属性设置为 True,且当前单元位于任何一个拆分的最后一列,则按 tab
                        或箭头键将使当前单元“跳” 到下一个拆分的第一列。当前单元仍保持相同的行位置。  
                          注意 如果 WrapCellPointer 和 TabAcrossSplits 属性都设置为
                        True,则只有当前单元位于最后一个拆分的最后一列时才会换行。这时当前单元将换到第一个拆分的第一列中的下一行。  

                          自定义列集合
                          每一个 Split 对象都有一个 Columns 属性,允许用户来操作一个 Column
                        对象的集合。通过这样做,可以更改每个 Split
                        对象的外观。例如,可以用一个拆分包含显示姓氏字段和名字字段的两个列,而第二个拆分则显示电话字段和地址字段。要实现这一目标,需要将其它的每一列的
                        Visible 属性设置为 False,如下所示:  
                          ' 枚举 Columns 集合,对每一个 Column 对象的 DataField 属性
                          ' 进行测试。如果测试失败,则隐藏这一列。
                          Dim i As Integer  
                          ' 隐藏除 ProductName 列之外的所有列。
                          For i = 0 To DataGrid1.Splits(0).Columns.Count - 1
                          If DataGrid1.Splits(0).Columns(i).DataField <>
                        "ProductName" Then
                          DataGrid1.Splits(0).Columns(i).Visible = False
                          End If
                          Next i  
                          ' 隐藏除 UnitPrice 列之外的所有列。
                          For i = 0 To DataGrid1.Splits(0).Columns.Count - 1
                          If DataGrid1.Splits(1).Columns(i).DataField <>
                        "UnitPrice" Then
                          DataGrid1.Splits(1).Columns(i).Visible = False
                          End If
                          Next I

相关文章推荐

VB.net中DataGrid导出为Excel文件函数

Public Function ExportXLsD(ByVal datagrid As DataGrid) ', ByVal Title As String) 'Dim Mytab...

VB datagrid分頁 總結

目前大家用vb中的datagrid分頁顯示數據庫內容的方法都很類似 就是先使用了ADODB的分頁功能,以提供一個游標定位,自動將數據分頁 但是分頁後如果直接將數據源送給datagrid就會出現當前...

vb.net DataGrid Windows 控件执行分页

http://support.microsoft.com/kb/305271/zh-cn DataGrid Web 控件有内置的自动或自定义分页功能,但是 DataGrid Wind...

使用ASPOSE导出DataGrid数据到Excel(VB)

'介绍:采用Aspose导出EXCEL     '导出数据到EXCEL文件     '-------------------------------------------------------...

vb中用ado对象Recordset来绑定到DataGrid的常见问题分析

 vb中用ado对象Recordset来绑定到DataGrid的常见问题分析 2014年03月14日 ⁄ 综合 ⁄ 共 2412字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ...
  • kirawoo
  • kirawoo
  • 2017年05月12日 16:34
  • 529

Easyui 数据网格详细视图(DataGrid DetailView)

数据网格详细视图,如图 一、页面上引入脚本      可以百度下载 二、写table 三、初始化table为datagrid,并且初始化详细视图 ...

[JS][easyui]jQuery EasyUI Datagrid VirtualScrollView视图简单分析

大家都知道EasyUI的Datagrid组件在加载大数据量时的优势并不是很明显,相对于其他一些框架,如果数据量达到几千,便会比较慢,特别是在IE下面。针对这种情况,我们首要做的是要相办法优化datag...

数据网格分组视图(DataGrid GroupView)

http-equiv="Content-Type" content="text/html; charset=UTF-8"> name="keywords" content="jquery...

Easyui DataGrid自定义视图和subGrid

使用DataGrid的自定义视图,可以扩展一行显示更多的细节 下文定义的divview其实是使用了datagrid的view配置,重写了其默认的renderRow方法。 基于这种实现,我们可以显示更多...
  • ld_____
  • ld_____
  • 2015年08月14日 11:05
  • 3511
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在VB中操作DataGrid视图
举报原因:
原因补充:

(最多只允许输入30个字)