Foxtable(狐表)用户栏目专家坐堂 → 通过表引用下拉窗口,如何实现在表中按下 enter 或 方向向右的箭头,才弹出下拉窗口?


  共有3763人关注过本帖树形打印复制链接

主题:通过表引用下拉窗口,如何实现在表中按下 enter 或 方向向右的箭头,才弹出下拉窗口?

帅哥哟,离线,有人找我吗?
guosheng
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
通过表引用下拉窗口,如何实现在表中按下 enter 或 方向向右的箭头,才弹出下拉窗口?  发帖心情 Post By:2020/4/27 9:11:00 [只看该作者]

自定义录入界面之三


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/27 9:15:00 [只看该作者]

到表格keydown事件写代码控制即可

 回到顶部
帅哥哟,离线,有人找我吗?
guosheng
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By: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

          ……

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/27 13:41:00 [只看该作者]

如果要使用方向键来打开下拉,就没有办法做筛选了。要不就改为【自定义录入界面之二】的用法,在下拉窗口里添加筛选文本框

 回到顶部
帅哥哟,离线,有人找我吗?
guosheng
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2020/4/29 8:54:00 [只看该作者]

用dropdownbox控件,能否实现控件输入完毕后按下 回车方向右键,实现 打开根据 dropdownbox内容筛选后的下拉窗口啊?多谢
[此贴子已经被作者于2020/4/29 8:54:32编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部