GRID 网格列的处理属性

GRID 列与行属性
ActiveColumn 属性 返回包含活动单元的 Grid 控件中的整数列号。设计时不可用;运行时只读
RelativeColumn 属性
Grid 控件可视部分的活动列列号 ,由左数的列数 。设计时不可用,运行时只读。

Columns[nCol] 属性 列对象数组。 nCol 列生时的列号。未移动列时 nCol=ActiveColumn 

ColumnCount 属性
属性 指定 Grid、ComboBox 或 ListBox 控件中列对象的数目。 
Column.ColumnOrder  属性 指定 Grid 控件中 Column 对象的相对顺序。设计和运行时可用。

LeftColumn  
属性 包含 Grid 控件显示的最左列的编号。设计和运行时只读。使用 LeftColumn 属性来确定哪些列用户不可见。例如,如果 LeftColumn =
3,则 列1 和 列2 不可见。
有锁定列时,这个值就不会变了。
 

以上返回的都是列的排列位置,

当列未移动过Grid.Columns[Grid.ActiveColumn]可以返回列对象。

当列移动过重排后,Grid.Columns[Grid.ActiveColumn]就不是你要的列对象。

要通过列的Column.ColumnOrder=Grid.ActiveColumn,才能找到你要的列对象。

 
RowColChange 属性 返回移动了行还是列。0未动,1行动,2列动,3行列全动

 ActiveRow 属性 指定表格控件中包含活动单元的行。设计时不可用;运行时只读。
RelativeRow 属性 可见到的部份行,现在是第几行。 

AfterRowColChange 事件 当用户移到表格的另一行或列时,新单元获得焦点以及新行或列中对象的 When 事件发生后,发生此事件。如果新行或列中对象的 When 事件不返回“真”(.T.),则不触发AFTERROWCOLCHANGE 事件。

BeforeRowColChange 事件 当用户更改活动的行或列,而新单元还未获得焦点时发生该事件。也可以在表格列中当前对象和数据库中任何规则的 Valid 事件之前发生。使用 NODEFAULT 可以防止改变表格中活动的行和列。 

ActivateCell 方法 在表格控件中激活一个单元格.

 
GridHitTest 方法 作为输出参数返回一个表格控件在指定水平 (X) 和垂直 (Y) 坐标的组成部分。

建立列序号与列排序号关联关系的数组

*在网格中建立数组 this.aactivecolum[1,2] 属性
*建立生成数组的方法 this.setaactivecolum() 代码以下:
IF this.ColumnCount <= 0

     RETURN

ENDIF

DIMENSION this.aactivecolumn[this.ColumnCount,2]  && 

LOCAL lnii
FOR lnii = 1 TO this.ColumnCount

     WITH  this.Columns[lnii]

         this.aactivecolumn[.ColumnOrder ,1] = lnii

         this.aactivecolumn[.ColumnOrder ,2] = .name
         
     ENDWITH

ENDFOR