也就是禁止列标题不能让用户拖来拖去移动位置,但是列的宽度可以拖的方法(可行):1、禁止整个DBGrid所有列都不能拖,只能调宽度:
TStringGrid(DBGrid1).Options := TStringGrid(DBGrid1).Options - [goColMoving];2、只禁止某列不能拖,其他的可以拖:
TStringGrid(DBGridEhHw1).FixedCols := 2;//第一列不可以拖,其他列可拖,为什么是2,这里是把DBGrid的Indicator(指示器,显示记录指针的那列)列当成第一列。方法告诉大家了,现在想请教大家一个问题:
DBGrid的DrawColumnCell事件里的Rect: TRect;是记录当前Column: TColumn的位置信息,一般情况下没有问题,但是有一种情况就有问题了,比如表中有三列A,B,C,三列正好把表格占满,也没出现水平滚动条,这个时候拖动B列使它变宽,并且拖动鼠标到表格外面去,这时A,B两列就把表格占满了且会出现滚动条,C列早就跑到老后面去了,这种情况下,C列的Rect值就还是记录的它在未拖动之前的值,而没有变化,这个信息就不正确了,这个怎么解决呀?
还试了一下,如果拖动B列时稍注意一点,拖动的宽度不要超过C列的宽度,这时就不会出错!