以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何设置删除单元格内容时不触发StartEdit事件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=44341)

--  作者:loongtai
--  发布时间:2013/12/28 14:07:00
--  [求助]如何设置删除单元格内容时不触发StartEdit事件
我在表A的StartEdit事件中设置了弹出目录树窗口进行辅助录入,但是当要删除这列单元格的内容时,仍然会触发StartEdit事件,而使得删除操作无法进行。不知如何实现这样的目的:当要对某单元格进行编辑时,弹出目录树窗口,但如果是按Delete键对单元格内容进行清空时,则不弹出目录树窗口?
--  作者:Bin
--  发布时间:2013/12/28 14:09:00
--  
试试 PrepareEdit  事件
--  作者:Bin
--  发布时间:2013/12/28 14:14:00
--  

KeyDownEdit 事件也可以,记得使用e.cancel=true 取消当次按钮即可


--  作者:loongtai
--  发布时间:2013/12/28 14:29:00
--  
KeyDownEdit事件
If e.keycode=keys.delete Then
    MessageBox.show("执行Keydown")
    e.text=Nothing
    e.cancel=True
End If
StartEditg事件
If e.Col.Name = "员工所属角色" Then
    e.Cancel = True
    MessageBox.show("开始编辑")
    Dim frm1 As String="目录树录入查询窗口"
    Dim frm2 As String="指定角色"
    Functions.Execute("LoadForm_PubInitial",frm1,frm2)
    Vars("tbn")=e.Table.name
    \'MessageBox.show("tbn=" & Vars("tbn"))
End If

发现按Delete键后,先触发StartEdit事件后触发KeyDownEdit事件,所以还是先弹出目录树窗口,无法删除内容。

--  作者:Bin
--  发布时间:2013/12/28 14:32:00
--  
我是说,把代码都放到KeyDownEdit事件
--  作者:loongtai
--  发布时间:2013/12/28 14:39:00
--  
MessageBox.show("执行Keydown")
If e.Col.Name = "员工所属角色名称" Then
    If e.keycode=keys.delete Then
        e.text=Nothing
        e.cancel=True
    Else
        e.Cancel = True
        MessageBox.show("开始编辑")
        Dim frm1 As String="目录树录入查询窗口"
        Dim frm2 As String="指定角色"
        Functions.Execute("LoadForm_PubInitial",frm1,frm2)
        Vars("tbn")=e.Table.name
        \'MessageBox.show("tbn=" & Vars("tbn"))
    End If
End If
按Delete是能删除内容,但是进入单元格无法弹出目录树窗口。

--  作者:Bin
--  发布时间:2013/12/28 14:43:00
--  
按下按键即可弹出. 或者你使用单元格按钮点击弹出吧.