以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  通过表引用下拉窗口,如何实现在表中按下 enter 或 方向向右的箭头,才弹出下拉窗口?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=149236)

--  作者:guosheng
--  发布时间:2020/4/27 9:11:00
--  通过表引用下拉窗口,如何实现在表中按下 enter 或 方向向右的箭头,才弹出下拉窗口?

自定义录入界面之三


--  作者:有点蓝
--  发布时间:2020/4/27 9:15:00
--  
到表格keydown事件写代码控制即可
--  作者:guosheng
--  发布时间:2020/4/27 10:22:00
--  

原来打开下拉窗口的代码该怎么改啊,多谢

If e.Col.Name = "客户ID" Then \'如果编辑的是客户ID列
    If e.Col.DroppedDown = False \'且下拉窗口没有打开
        e.Col.OpenDropDown()
\'打开下拉窗口
   
End If
End
If




If e.Control = True AndAlso e.Table.Current IsNot Nothing Then
    Dim
r as Row = e.Table.Current
    Select
Case e.KeyCode
        Case
Keys.right

             ……

     Case Keys.Enter

          ……

         图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2020/4/27 10:53:00
--  
试了一下,没有办法使用enter控制,可以使用方向键
去掉KeyPressEdit事件,KeyDownEdit事件改为

If e.Col.Name = "客户ID" Then \'如果编辑的是客户 ID列
    If e.Col.DroppedDown Then \'如果下拉窗口已经打开
        Dim tbl As Table = Tables("窗口1_Table1")
        If e.KeyCode = Keys.Up Then \'如果按下的是上箭头按键
            tbl.Position = tbl.Position - 1 \'向上移动一行
            e.Cancel = True
        ElseIf e.KeyCode = Keys.Down Then \'如果按下的是下箭头按键
            tbl.Position = tbl.Position + 1 \'向下移动一行
            e.Cancel = True
        End If
    ElseIf e.KeyCode = keys.right
        e.Cancel = True
        e.Col.OpenDropDown
    End If
End If

--  作者:guosheng
--  发布时间:2020/4/27 12:08:00
--  
下拉窗口打开时进行筛选该写到哪里啊?
按了右方向键,调出下拉窗口,筛选失效了。
原来在Changeedit中的代码
If e.Col.Name = "客户" Then \'如果编辑的是客户ID列
    If e.Col.DroppedDown Then \'如果下拉窗口已经打开
        Dim tbl As Table = Tables("下拉窗口_Table1")
        If e.Text = "" Then \'如果内容为空
            tbl.Filter = "" \'显示所有客户
        Else \'否则根据输入内容进行模糊筛选
   Dim txt As String ="\'" & e.Text & "%\'"
            tbl.Filter = "ccode_name Like " & txt
        End If
    End If
End If

将代码加到keydownedit事件中也没有起作用:
If e.Col.Name = "第一列" Then \'如果编辑的是客户 ID列
    If e.Col.DroppedDown Then \'如果下拉窗口已经打开
        Dim tbl As Table = Tables("财务费项下拉窗口_Table1")
        If e.KeyCode = Keys.Up Then \'如果按下的是上箭头按键
            tbl.Position = tbl.Position - 1 \'向上移动一行
            e.Cancel = True
        ElseIf e.KeyCode = Keys.Down Then \'如果按下的是下箭头按键
            tbl.Position = tbl.Position + 1 \'向下移动一行
            e.Cancel = True
        End If
    ElseIf e.KeyCode = keys.right
        e.Cancel = True
        e.Col.OpenDropDown

        \'Dim tbl As Table = Tables("下拉窗口_Table1")
        \'If e.Text= "" Then \'如果内容为空
            \'tbl.Filter = "" \'显示所有客户
        \'Else \'否则根据输入内容进行模糊筛选
            \'Dim txt As String ="\'" & e.Text & "%\'"
            \'tbl.Filter = "ccode_name Like " & txt
        \'End If


    End If
End If

--  作者:有点蓝
--  发布时间:2020/4/27 13:41:00
--  
如果要使用方向键来打开下拉,就没有办法做筛选了。要不就改为【自定义录入界面之二】的用法,在下拉窗口里添加筛选文本框
--  作者:guosheng
--  发布时间:2020/4/29 8:54:00
--  
用dropdownbox控件,能否实现控件输入完毕后按下 回车方向右键,实现 打开根据 dropdownbox内容筛选后的下拉窗口啊?多谢
[此贴子已经被作者于2020/4/29 8:54:32编辑过]

--  作者:有点蓝
--  发布时间:2020/4/29 8:58:00
--  
dropdownbox,keydown事件

If e.KeyCode = keys.enter Then
    If e.Sender.DroppedDown = False Then
         e.Sender.OpenDropDown
    End If
End If