在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

关于datagrid 垂直滚动条设置

很多事我们需要让datagrid  显示滚动条 js里面  onLoadSuccess: cellTipFilter,         //singleSe...
  • jingnengzhiyuan
  • jingnengzhiyuan
  • 2017年09月13日 10:05
  • 876

DataGrid控件用法详解

转自:http://www.vckbase.com/document/viewdoc/?id=1164 作者:万建华 下载源代码 写在前面   刚写这个题目,就觉得肩上...
  • banrixianxin
  • banrixianxin
  • 2014年05月16日 00:23
  • 4262

datagrid中添加滚动条

DATAGRID中是没滚动条的,要添加的话其实很简单,只需要: 其实是利用了CSS属性...
  • xiaoxiaohai123
  • xiaoxiaohai123
  • 2007年05月18日 10:22
  • 1760

如何在DataGrid里面产生滚动条

     我们在开发的时候一定遇到使用DataGrid的时候由于不想分页(数据没有那么多)但是又显示不在一页里面,此时我们希望在DataGrid里面出现一个滚动条,可以上下滚动DataGrid里面的数...
  • Snowdust
  • Snowdust
  • 2005年12月03日 19:02
  • 1510

WPF ScrollViewer(滚动条) 自定义样式表制作 图文并茂

先上效果图 正常样式 拖动时样式 好下面 开始吧 ================================================================= ...
  • dyllove98
  • dyllove98
  • 2013年04月04日 21:53
  • 3502

easyui去掉datagrid的滚动条

工作过程中需要去掉滚动条这个功能,由于是特别小的知识点,所以在此记录,以防忘记。 带滚动条时,如果数据超过规定大小则出现滚动条,否则不出现 但滚动条所占的宽度依然存在,两种状态截图如下: 去掉...
  • qq_25816185
  • qq_25816185
  • 2017年02月27日 08:47
  • 4810

DataGrid应用(二) —— 滚动条的设计

      为DataGrid加上滚动条,众所周知可以通过嵌套在里来实现。我先总结一下这些方法:1.   利用div的overflow的特性,我们可以设计出表格的滚动条。但是我们通常需要一个固定不动的...
  • fangxinggood
  • fangxinggood
  • 2005年12月13日 19:29
  • 6262

DataGrid 滚动特定的行或者列

DataGrid 滚动特定的行或者列。 DataGrid.ScrollIntoView Method (Object, DataGridColumn).NET Framework 4.5Silverl...
  • muzizongheng
  • muzizongheng
  • 2013年07月10日 15:41
  • 1660

easyui frozen column的垂直滚动条不出现的问题及原因

最近在做eaysui的时候,datagrid滚动条忽然不出现了,然后使用firebug调试了半天了,发现是frozen column导致了,easyui的垂直滚动条是设置在column中,所以当只设置...
  • weu135
  • weu135
  • 2015年04月20日 11:38
  • 1560

easyui datagrid 没数据时显示滚动条的解决方法

今天解决了一个bug,因为datagrid有多列,可是当没有数据的时候,后面的列无法通过滚动条拉动来显示,比较麻烦,而需求要求没有数据也要拉动滚动条查看后面有什么列,一开始在网上找了一些资料,发现都不...
  • xiayingping
  • xiayingping
  • 2013年09月24日 23:33
  • 12590
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在VB中操作DataGrid视图
举报原因:
原因补充:

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