以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  用PerformClick执行按钮删除行出错  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=83728)

--  作者:kao_go
--  发布时间:2016/4/15 13:12:00
--  用PerformClick执行按钮删除行出错
在表的DoubleClick事件中是以下代码
e.Form.Controls("toyou1").PerformClick() \'双击等于选择当前行


按钮控件toyou1中是以下代码
Dim ckmc As String=e.Form.Name
Dim zuo As Table=Tables(ckmc+"_zuo")
Dim you As Table=Tables(ckmc+"_you")
Dim zuoh As Integer
If zuo.Current IsNot Nothing Then \'当前行不为空
    \'右侧代码
    Dim an As Row=you.AddNew \'添加新的一行
   \' zuo.Select(zuo.position,0)  \'选定左侧当前行
    an("ghsdm")=zuo.Current("ghsdm")  \'为新的行赋值
    an("ghsmc")=zuo.Current("ghsmc")
    you.Position = you.Rows.Count - 1 \'定位到最后一行
    \'右侧定位到最后一行
    \'左侧代码
    zuoh=zuo.Position
    zuo.current.delete \'删除选定行

    If zuoh=zuo.Rows.count   Then  \'如果删掉的是最后一行则(删掉一行之后,所有不减1)
        zuo.Position=zuo.Rows.count
    End If
End If

选中最后一行时,直接点击toyou1按钮的时候,是正常的,可是双击的时候,就会提示index超出范围

--  作者:kao_go
--  发布时间:2016/4/15 13:56:00
--  
这是提示的图片
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160415135458.png
图片点击可在新窗口打开查看

--  作者:大红袍
--  发布时间:2016/4/15 14:05:00
--  

e.Cancel = True

e.Form.Controls("toyou1").PerformClick() \'双击等于选择当前行

--  作者:kao_go
--  发布时间:2016/4/15 14:20:00
--  
明白了,可以了,谢谢红袍老师!!!!