Foxtable(狐表)用户栏目专家坐堂 → 有关DropDownBox 控件焦点 转移的问题?


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

主题:有关DropDownBox 控件焦点 转移的问题?

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


加好友 发短信
等级:婴狐 帖子:15 积分:214 威望:0 精华:0 注册:2011/10/11 16:35:00
有关DropDownBox 控件焦点 转移的问题?  发帖心情 Post By:2020/1/16 11:27:00 [只看该作者]

多次查阅了论坛中的贴子&帮助示例 还是不得其法,遂发贴求教!
想实现在完成DropDownBox控件下拉目录树的输入后,通过代码自动将输入焦点转移到下一个控件(tab键的下一个),却发现无法转移,只能通过鼠标点选才能再次取得输入焦点。请教是代码问题吗?

frmzlgsbmlist_AfterLoad 

'加载目录树

frmtr(e.Form.Controls("TreeView1"),"qryjczlgsbm")

 

frmzlgsbmlist_DropDownOpened 

e.Form.DropDownBox.Select()

 

frmzlgsbmlist_TreeView1_NodeMouseClick 

If e.Form.DropTable IsNot Nothing Then '如果是通过表下拉的

    e.Form.DropDownBox.Value = e.node.Name

    e.Form.DropTable.FinishEditing()

Else '如果是通过窗口下拉的

    Select Case  MainTable.name

        Case  "tblzllpzl", "tblcgcgsq"

            If e.node.Text <> "全部"

                e.Form.DropDownBox.value = e.node.name & "_" & e.node.Text

            Else

                e.Form.DropDownBox.value = ""

            End If

            e.Form.DropDownBox.Select()

            Sendkeys.Send("{tab}")

        Case  "qryxsddlist"                  

    End Select

End If

e.Form.DropDownBox.CloseDropdown



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


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

我测试可以,上传实例说明

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


加好友 发短信
等级:婴狐 帖子:15 积分:214 威望:0 精华:0 注册:2011/10/11 16:35:00
  发帖心情 Post By:2020/1/16 12:47:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:带查找功能的下拉目录树.table


以上示列我改写了NodeMouseClick事件代码

If e.Node.Level = 1 Then '如果单击的是第二层节点
    Dim tr As Row = Tables("客户").Current
    Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
    tr("省市") = dr("省市")
    tr("县市") = dr("县市")
    tr("区号") = dr("区号")
    tr("邮编") = dr("邮编")
    e.Form.DropDownBox.Value = tr("县市") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    e.Form.DropDownBox.Select()
    Sendkeys.Send("{tab}")
    e.Form.DropDownBox.CloseDropdown()
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:带查找功能的下拉目录树.table

End If

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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/16 14:35:00 [只看该作者]

不能在NodeMouseClick关闭下拉窗口,这个会影响内部消息处理

DropDownClosed事件

Sendkeys.Send("{tab}")

添加一个关闭按钮,代码
e.Form.DropDownBox.CloseDropdown

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


加好友 发短信
等级:婴狐 帖子:15 积分:214 威望:0 精华:0 注册:2011/10/11 16:35:00
  发帖心情 Post By:2020/1/16 18:45:00 [只看该作者]

先谢过解答,但还是不太理解?
 是否可以理解为  1、帮助 & 示例中 NodeMouseClick事件代码中的 e.Form.DropDownBox.CloseDropdown() 是有问题的?  要用其它办法关掉下拉窗口,关闭下拉窗体后再转移控件焦点。
                  2、再增加一个关闭按钮不是又节外生枝了,还有其途径吗?

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


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

e.Form.DropDownBox.CloseDropdown()没有问题,只是在目录树点击会导致窗口无法获取焦点。

没有其他途径,个人觉得,添加一个确定按钮才是合理的,毕竟有时候用户点击目录树这个节点未必就是想选用这个节点。

 回到顶部