以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于删除行的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127414)

--  作者:liuqide
--  发布时间:2018/11/13 16:34:00
--  关于删除行的问题
Syscmd.Row.Delete()
CurrentTable.Current.Save

删除行再保存,为何关闭程序时仍然提示是否保存

--  作者:有点甜
--  发布时间:2018/11/13 16:36:00
--  

要这样才行

 

Syscmd.Row.Delete()
CurrentTable.Save

--  作者:liuqide
--  发布时间:2018/11/13 16:41:00
--  
但我另一个项目是这样写的
Dim r As Row = Tables("ProductionMain").Current

    Dim Result As DialogResult
    Result = MessageBox.Show("确定要删除此行吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        r.Delete()  
        r.Save()
    Else
        Return
    End If

关闭程序并没有提示是否保存,在执行上述代码后即时从后台删除这行
[此贴子已经被作者于2018/11/13 16:52:42编辑过]

--  作者:有点甜
--  发布时间:2018/11/13 17:54:00
--  

那,你代码这样写

 

Dim cr = CurrentTable.current
cr.delete
cr.save


--  作者:liuqide
--  发布时间:2018/11/14 10:46:00
--  
Dim cr = CurrentTable.current
cr.delete
cr.save
如果按上面这样写,关闭程序不会提示是否保存

如果按下面,关闭程序会提示是否保存
CurrentTable.current.delete
CurrentTable.current.save

这两种写法,执行应该是一样才对啊,为何实际执行结果会不同呢?

--  作者:有点甜
--  发布时间:2018/11/14 10:50:00
--  

删除一行以后,你再用CurrentTable.current获取,获取到的不是删除的那一行,而是删除后表格里显示的当前行。

 

如果在删除前先记录,那就可以定位到删除那行。


--  作者:liuqide
--  发布时间:2018/11/14 11:44:00
--  
明白了,谢谢