a. 不管是向Grid中新增数据,还是读取Grid中数据(都涉及到BookMark移动),在操作之前设定Redraw=True,操作完或遇错误设Redrao=False;
b. 往往需要读取Grid上所有数据,这里会有多种方法如
Ø 通过grid.MoveFirst,循环中使用grid.MoveNext(最好的方式);
Ø grdFrom.Bookmark = grdFrom.AddItemBookmark(intI)
strRecord = grdFrom.columns(intCol).Value
Ø strRecord = grdFrom.columns(intCol).CellValue(grdFrom.AddItemBookmark(intI))
c. Row属性是获得可见行的行号要得到绝对行的行号使用如下语句:
可见行号:grdFrom.row
绝对行号:grdFrom.row+grdFrom.AddItemRowIndex (grdFrom.FirstRow )
绝对列号: grdFrom.Col
d. 有时候为了获得某行中某些元素值,需结合使用Bookmark,为了不发生错误,需做如下判断
bkMark=grdFrom.BookMark
0=<grdFrom.AddItemRowIndex(bkMark)< grdFrom.Rows(比如点击Grid中空白处)
e. 变动Grid中一个单元格后有时会Check其有效性,同时需变动相关其它单元格的值,规则是在
BeforeColUpdate事件中Check; AfterColUpdate事件中更新其它值;
其中有如下注意点:在AfterColUpdate中
取得更新前的值: grdFrom.columns(Name).CellValue(grdFrom.Bookmark)
取得更新后的值: grdFrom.columns(Name).Value