1、自动选中某一行,设置好 selectionmode、backcolorsel、等属性
msfg.row=1: msfg.col=0: msfg.colsel=msfg.cols-1
============================================================
2、.TextMartix(row,col) 的方式 效率上优于 .row: .col : .Text 的方式
============================================================
3、对Up、Down、PgUp、PgDn、Ctr+Up、Ctr+Dn键的响应问题
(1) 正常情况下,按下上述键,表格的焦点行,会自动跳转,并且焦点行,始终在界面上可见
(2) 如果在MSFG的RowColChange 或 EnterCell事件中对MSFG单元格的处理(用到了.row,.col去处理某些问题),这些影响到了上述键的使用,
问题:焦点行会自动跳转,但界面上并不可见-------------应该是MSFG控件本身的问题
解决:可以根据旧焦点行(oldRow),与当前焦点行(curRow),及2者差值(Abs(curRow-oldRow)),手动改变.TopRow属性
参照-----------------------
'-----修改表格按键改变行,选中行在界面不可见问题----- If Abs(curRow - oldRow) = 1 Then 'Up ,Down 键 If curRow < oldRow Then If Not .RowIsVisible(curRow) Then '---------------Up .TopRow = .TopRow - 1 End If ElseIf curRow > oldRow And curRow < .Rows - 1 Then '--Down If Not .RowIsVisible(curRow + 1) Then .TopRow = .TopRow + 1 End If End If ElseIf Abs(curRow - oldRow) > 1 Then If curRow = .Rows - 1 Then '--------------------------Ctr+Down .TopRow = .Rows - 1 ElseIf curRow = .FixedRows Then '--------------------Ctr+Up .TopRow = .FixedRows ElseIf Not .RowIsVisible(curRow) Then ' If curRow > oldRow Then '-------------------------PgDn If curRow < .Rows - 1 Then .TopRow = oldRow Else .TopRow = .Rows - 1 End If Else '-----------------------------------------PgUp If curRow > .FixedRows Then .TopRow = curRow Else .TopRow = .FixedRows End If End If End If End If