求教 MSFlexGrid 控件删除行后再添加行显示不正常的问题

fighterhht 2010-04-18 01:30:40


Dim iRow As Integer
If (Index = 0) Or (Index = 1) Then
'Index = 0: 在当前行之前添加新行
'Index = 1: 在当前行之后添加新行

With Grid1
iRow = .row + Index
.AddItem iRow, iRow

.TextMatrix(iRow, 1) = .TextMatrix(iRow + IIf(Index = 0, 1, -1), 1)
.TextMatrix(iRow, 2) = .TextMatrix(iRow + IIf(Index = 0, 1, -1), 2)
.TextMatrix(iRow, 3) = .TextMatrix(iRow + IIf(Index = 0, 1, -1), 3)
Dim i As Integer
For i = iRow To .Rows - 1
.TextMatrix(i, 0) = i
Next i
End With
ElseIf (Index = 2) Then
'删除当前行
With Grid1
.RemoveItem .row
For i = .row To .Rows - 1
.TextMatrix(i, 0) = i
Next i
End With
End If


使用以上代码出现的问题是:
如果先执行删除操作,然后再执行添加操作,则添加的行并没有显示出来(不执行删除操作则运行正常).

望高手指点!
...全文
263 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dl20070302 2010-04-29
  • 打赏
  • 举报
回复
不管是删除还是添加后都先刷新数据源后再进行下一步操作嘛.
chinaboyzyq 2010-04-19
  • 打赏
  • 举报
回复
sp6版的没有问题。

可以试一下:Grid1.Refresh
xiaowei820312 2010-04-18
  • 打赏
  • 举报
回复
操作完表格刷新,

使用它的升级版, VSFlexGrid Pro 8.0 非常好
yangxie5201314 2010-04-18
  • 打赏
  • 举报
回复
请打SP6补丁
bcrun 2010-04-18
  • 打赏
  • 举报
回复
我这里测试了,没楼主说的问题啊,要不如2楼所说,你看看是否打了sp6。3楼说的VSFlexGrid Pro是个商业软件,很贵的,小软件开发不推荐使用。

Private Sub Command1_Click()
T1 2 ' 先删除
T1 0 ' 再添加
End Sub

'---------------------------------------------------------------------------------------
' 过程名 : T1
' 时间 : 2010-4-18 14:32
' 作者 : 杨过.网狐.cn(csdn bcrun)
' 功能 :
' 说明 :
' 备注 : http://topic.csdn.net/u/20100418/01/911edddc-94b9-4d45-b6e2-cb81cd592085.html?1012
'求教 MSFlexGrid 控件删除行后再添加行显示不正常的问题
'---------------------------------------------------------------------------------------
'
Private Sub T1(Index As Integer)
Dim iRow As Integer
If (Index = 0) Or (Index = 1) Then
'Index = 0: 在当前行之前添加新行
'Index = 1: 在当前行之后添加新行

With MSFlexGrid1
iRow = .Row + Index
.AddItem iRow, iRow

.TextMatrix(iRow, 1) = .TextMatrix(iRow + IIf(Index = 0, 1, -1), 1)
.TextMatrix(iRow, 2) = .TextMatrix(iRow + IIf(Index = 0, 1, -1), 2)
.TextMatrix(iRow, 3) = .TextMatrix(iRow + IIf(Index = 0, 1, -1), 3)
Dim i As Integer
For i = iRow To .Rows - 1
.TextMatrix(i, 0) = i
Next i
End With
ElseIf (Index = 2) Then
'删除当前行
With MSFlexGrid1
.RemoveItem .Row
For i = .Row To .Rows - 1
.TextMatrix(i, 0) = i
Next i
End With
End If
End Sub
lb_bn 2010-04-18
  • 打赏
  • 举报
回复
帮楼主顶起来。。。

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧