关于MSFlexGrid的RowSel属性问题
用MSFlexGrid做的一个监控界面,单元格实时的刷新背景色,这些都没问题,问题是如果我选中了某些单元格,这个时候某个单元格刷新了背景色,那么这个选中的效果全部都取消了,焦点回到那个刷新的单元格上了,能不能把这个屏蔽掉呢,让用户选中的单元格一直有效,不会被刷新某个单元格的背景色而取消掉了....如果MSFlexGrid不能实现,有没有类似的网格控件实现这个功能呢?
谢谢!问题解决,再多给分
问题点数:100、回复次数:8Top
1 楼Modest(塞北雪貂)·(偶最欣赏楼主的分)回复于 2006-03-03 14:51:55 得分 0
刷新前记录焦点位置
刷新后重新定位Top
2 楼ZOU_SEAFARER(颓废程序员^_^)回复于 2006-03-03 15:22:47 得分 0
Private Sub MSHFlexGrid1_Click()
Me.MSHFlexGrid1.CellBackColor = vbRed
End Sub
把选种的cell设置为红色Top
3 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-03 15:53:10 得分 0
刷新前,记录被选中的区域,在刷新后,再恢复被选中的内容
或者
在刷新前判断是否有选中的区域,如果有则不刷新
如何判断是否选择了区域:
设置4个窗体级变量,分别在MouseDown事件和MouseUp事件里记录.MouseCol 和.MouseRow,如果鼠标点的不是固定行、列,或者MouseDown事件和MouseUp事件里记录.MouseCol 或.MouseRow不相同,则表示选择了某区域Top
4 楼WeirdGuy()回复于 2006-03-03 16:32:54 得分 0
谢谢楼上各位答复,首先,刷新是肯定刷新的,这是监控数据状态返回,而且基本上刷新的单元格是随机的,1秒刷新几个单元格....
我意思是比如我某时刻选中了一块区域,选中了一些单元格,当然这个时候我可以知道具体选中的是哪些单元格,但是马上有个刷新事件上来了,这个事件引起的是我刚才选中的区域没了,单元格被聚焦在刚才刷新的单元格上...
这就是问题,如果刷新很频繁,客户没办法选中某一片区域来操作这些单元格...我很想知道有什么办法刷新这个单元格背景色的时候,MSFlexGrid控件不会把我刷新前选中的区域取消掉...Top
5 楼ZOU_SEAFARER(颓废程序员^_^)回复于 2006-03-03 16:43:11 得分 0
Dim i As Integer
dim j as integer
Private Sub MSHFlexGrid1_Click()
i = Me.MSHFlexGrid1.Row
j = Me.MSHFlexGrid1.col
Me.MSHFlexGrid1.TopRow = i
End Sub
在刷新后继续把焦点返回到i,j,不管怎么刷新,你一直可以看到你以前点中的行在最上面Top
6 楼WeirdGuy()回复于 2006-03-03 16:54:34 得分 0
但是我在刷新前选中的是一块区域,并不是一个单元格,你现在只是保存在刷新前的一个单元格啊...Top
7 楼WeirdGuy()回复于 2006-03-03 17:14:43 得分 0
我已经测试了,如果刷新频率高的话,用户根本没法点击某一个单元格,因为一旦点击下去,就会编程刷新的那个单元格了....Top
8 楼Silo(炽天之翼)回复于 2006-03-03 18:35:25 得分 0
怕刷新频率高的话,用一个timer?timer溢出的时候刷呢?Top
相关问题
- MSFlexGrid中的ColIsVisible属性怎么用?
- help? ------------------ MSFlexGrid的sort属性问题
- MSFlexGrid控件有double click属性吗?
- 把MSFlexGrid的属性WordWrap设为True怎么换不了行呢?
- 用DataGrid如何实现VB6中MSFlexGrid的SelectionMode属性
- 请问 VB 中的 MSFlexGrid 控件的 DataSource 属性如何用法 ?
- 请问 VB 中的 MSFlexGrid 控件的 DataSource 属性如何用法 ?
- 一个简单的msflexgrid的问题!如何设置CellAlignment属性
- 能否将Datagrid或Msflexgrid的datasource属性等于一个Recordset对象
- msflexgrid中有没有让单元格中的内容自动换行的属性?




