以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]窗口表中不同类型的keydonw表现不同  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=91507)

--  作者:chnfo
--  发布时间:2016/10/12 13:39:00
--  [求助]窗口表中不同类型的keydonw表现不同
在窗口中有一个表,它的keydonw事件这么写
Dim tbl As Table = e.Form.Controls("Table1").Table
Dim n As Integer = tbl.Current.Index
Select Case e.KeyCode
    Case keys.enter
        If  tbl.BottomPosition = n   Then
            tbl.AddNew()
        Else
            Sendkeys.Send("{Down}")
        End If
End Select

如果它是normal的表,比如绑定了表A,每按一次回车(不论当前光标是不是在最后一行),它会自动增加两行(因为表A的属性设置为了自动增加行,按回车键到下一行,可能是这个原因吧),焦点锁定在列不变。
如果它是SQLTable,每按一次回车(不论当前光标是不是在最后一行),它会自动增加一行,焦点会转到增加行的下一列

我的目的是希望在SQLTABLE表中,如果当前行是最后一行,按回车则增加新行;否则光标移到下一行,但列不变。
问题在哪里呢?

--  作者:有点蓝
--  发布时间:2016/10/12 14:46:00
--  

[此贴子已经被作者于2016/10/12 14:48:18编辑过]

--  作者:有点蓝
--  发布时间:2016/10/12 14:48:00
--  
Dim tbl As Table = e.Table
Select Case e.KeyCode
    Case keys.enter
        e.Cancel = True
        If  tbl.Position =  tbl.Rows.Count - 1  Then
            tbl.AddNew()
        End If
        Sendkeys.Send("{Down}")
        
End Select