datagrid中列的固定问题

TQSHHHH 2004-08-21 02:05:54
窗体为winform,如何固定前三列,当拖动滚动条时,前三列位置不变

急!
在线等!!!
...全文
260 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
DWFPHDYY 2004-09-14
  • 打赏
  • 举报
回复
我看到了 转载一下
Split 对象

Split 对象表示 DataGrid 控件中的一个拆分。

说明

DataGrid 支持那些类似 Excel 的拆分,这些拆分把网格分成垂直窗格,以便为数据库提供不同视图。每个拆分都用 Split 对象来表示,而且还包含一组逐列滚动的彼此相邻的列。按照缺省规定,当创建 DataGrid 对象时,它将包含一个 Split 对象。

可以使用拆分在多个垂直窗格中表示数据。数据窗格(或拆分)可用不同颜色和字体来显示数据。它们可以一起(垂直)滚动或相互独立地滚动,也可以显示相同的或不同的列。还可用拆分来固定一列或多列,使之不能滚动。与其它网格产品不同,不必把已固定的列放在网格的左边,而是可以放在右边或中间的任何位置上。一网格中甚至还可以有多组固定的列。

每个 Split 对象都拥有自己的 Columns 集合。这些独立的拆分和列提供了功能很强,又极为灵活的数据表示能力。

如上所述,最初网格(DataGrid对象)只包含一个拆分。如果创建了额外的拆分,则可象如下示例那样用 Split 属性来确定或设置当前拆分(就是已接收到焦点的那个拆分):

'读当前拆分的索引,这个索引是从零开始算起的
Variable% = DataGrid1.Split

'把焦点设置到拆分处,拆分的索引等于
' Variable%
DataGrid1.Split = Variable%

网格中的每个拆分都是同一数据源的一个不同视图,每个拆分的性能都与一个独立的网格相似。如果没有定制拆分的任何属性而创建额外的 Split 对象,则所有的拆分将是等同的,而且每个拆分的性能都与原来那个具有拆分的网格相似。

DataGrid 控件的某些属性与 Split 对象的属性相同,所以可看作二者共有的。改变 DataGrid 控件的普通属性也会使当前 Split 对象的相同属性发生变化,反之亦然。例如,对具有两个拆分的网格,假定当前拆分索引为 1(也就是将网格的 Split 属性设置为 1)。如果想确定正在使用的字幕样式,则可注意到,下列语句是等价的:

marquee% = DataGrid1.MarqueeStyle
marquee% = DataGrid1.Splits(1).MarqueeStyle

如果将当前拆分索引设置为 1,则把 MarqeeStyle 属性设置为 dbgSolidCellBorder 下列代码是等价的:

DataGrid1.MarqueeStyle = dbgSolidCellBorder
DataGrid1.Splits(1).MarqueeStyle = dbgSolidCellBorder

注意 对 DataGrid 对象及与它关联的 Split 对象来说,公共属性是唯一的。再没有一对对象具有如此相似的关系。


**************

可以用拆分来固定一列或多列,使之不能滚动。而且固定列不一定放在左边,可以放在右边或中间的任何位置上。一网格中甚至还可以有多组固定的列。

1、DataGrid 控件包含一个 Split 对象的集合。要在程序中添加拆分,可以使用 Add 方法:
DataGrid1.Splits.Add 1
DataGrid1.Splits.Add 2
2、当拆分多于一个时,可能希望控制这些拆分如何滚动。例如,在一个具有三个拆分的网格中,可以决定只让第一个和第三个拆分同步,而让中间的拆分独立地滚动。要同步任何两个(或多个)拆分,只需将每个 Split 对象的 ScrollGroup 属性设置为同一个值。
With DataGrid1
.Splits(0).ScrollGroup = 1
.Splits(1).ScrollGroup = 2
.Splits(2).ScrollGroup = 1
End With
通过设置 Scrollbars 属性,使同步的拆分组只显示一个滚卷条,从而进一步自定义拆分的外观。
DWFPHDYY 2004-09-14
  • 打赏
  • 举报
回复
顶一下
dofly 2004-08-30
  • 打赏
  • 举报
回复
关注................
TQSHHHH 2004-08-30
  • 打赏
  • 举报
回复
这个问题至今没有解决,高手们都在哪儿,若解决,再加50分
TQSHHHH 2004-08-23
  • 打赏
  • 举报
回复
datagrid中浏览数据是如何固定某列,当水平滚动条滚动时,此列位置固定?????
kissnono 2004-08-21
  • 打赏
  • 举报
回复
不懂excel,我想你可以试着用2个datagrid,或者在程序中自己定义一个dataset作为显示用的临时dataset.说实话,我还是不懂你说的意思
yingshis 2004-08-21
  • 打赏
  • 举报
回复
up
TQSHHHH 2004-08-21
  • 打赏
  • 举报
回复
就象excel中一样,可以固定某列
Night_Elf 2004-08-21
  • 打赏
  • 举报
回复
还是不懂你的意思!
kissnono 2004-08-21
  • 打赏
  • 举报
回复
请问:你是指前3列的内容么?
kissnono 2004-08-21
  • 打赏
  • 举报
回复
不清楚有没有现成的方法,帮顶

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧