DBGrid显示固定的列(20分)

  • 主题发起人 主题发起人 Sun
  • 开始时间 开始时间
S

Sun

Unregistered / Unconfirmed
GUEST, unregistred user!
前几天在网上看到使DBGrid的前几列固定下来的方法,今天却找不到了,
那一位帮我找到这20分就归他了!
 
呵呵,不好意思,我一直用的woll2woll的那个infopower,中间的dbgrid很好
如果你还没有,建议去搞一套,而且又有源代码
 
我这有infopower
可以伊妹儿给你。
 
上一次没有装好Email

这次再来
 
你的Email太小了。
装不下。
 
你们再说什么?
 
我是说infopower里的dbgrid可以冻结列
 
加进col,设置好宽度不就行了,不太明白你的意思
 
我的意思是:当滚动DBGrid下面的滚动条时前几列是固定的,不向前滚动,就象
StringGrind中的FixedCols的属性一样.
 
infopower里的dbgrid可以满足你的要求
 

TStringGrid(DBGrid1).Fixedcols:=2;

这样的话, 就能够固定住了.
但是DBGrid最好是设成只读的.
否则的话, 显示出来的效果不太正常.
 
liwei的可以。您也可以直接修改dbgrids的源码,加一个fixedcols的属性声明
就可以了,不过这两种方法的显示都有些问题。这可能就是为什么dbgrid没有继承
固定列属性的原因。如果您直接用stringgrid就没有问题了。
 
固定的列数 = X-1

TStringGrid(DBGrid).FixedCols := X;
 
快些结束吧.
Liwei的方法的确可以固定, 如果想固定n列,

if dgIndicator in Dbgrid.options then
TStringGrid(DBGrid1).Fixedcols:=n+1
else
TStringGrid(DBGrid1).Fixedcols:=n;

不过你想用的美观一些, 就用Infopower的Grid吧.(别给我加分,
我只是按照liwei的方法试的)
 
那里可下载infopower?
 
方法很简单;
由于Dbgrid控伯没有Fixcols属性但TStringGrid控伯有若固定最左边一列,
用:TStringGrid(MyDbGrid1).Fixcols:=2;若固定左边二列,用:
TStringGrid(MyDbGrid1).Fixcols:=3;依次类推。
但之前一定要把DBGrid涉及的Table的属性设为True,才起作用。


 
方法可行但太不美观了.
 
DBgridEH可以, 它还有支持多标头,固定最下一行( 如在凭证录入中)等作用。
有源代码, 我正打算改进使其能以各行不同的颜色显示
 
多人接受答案了。
 
后退
顶部