| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2667 人关注过本帖, 1 人收藏
标题:TextBox+ListBox组成的MyComboBox控件
只看楼主 加入收藏
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
用TAB键选项也要按两次

坚守VFP最后的阵地
2015-11-30 10:58
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用sdta在2015-11-30 10:58:19的发言:

用TAB键选项也要按两次

我操作只要一次。如果按TAB要两次,我是不会发放出来的。

[此贴子已经被作者于2015-11-30 11:04编辑过]


授人以渔,不授人以鱼。
2015-11-30 11:02
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
回复 9楼 TonyDeng
是不是不支持滚轮?好像不用api也可以解决。

能编个毛线衣吗?
2015-11-30 11:05
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用wmf2014在2015-11-30 11:05:32的发言:

是不是不支持滚轮?好像不用api也可以解决。


不是,原生ComboBox是当在输入框中键入列表框中没有的文本时会发生数据偏差,界面上,它也不能渐进搜索。下拉的体验其实不是那么好的,需要的动作多,更主要的是信息量少。我这个,要把列表框收放起来也很容易,就是为了显示更多的信息加速用户选定数据,才不那样做的。现在我这个是搜索项定位,也可以改为筛选过滤。反正源代码在这里,想怎么改都可以,那些已经不是问题了。

[此贴子已经被作者于2015-11-30 11:21编辑过]


授人以渔,不授人以鱼。
2015-11-30 11:12
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
5楼的,我以前见过,好像没什么问题。
那位老大,最后整理出好用的出来啊。
2015-11-30 11:17
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
没用过vfp!
好早好早好早用foxpro写过东西,我记得是邮局用于登记党报党刊发行的,那时好学啊,边看书边写,居然用了(还能打发票哦)。就那么一次,后来就没再做过dbase数据库的东东了。

能编个毛线衣吗?
2015-11-30 11:24
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我发这个的主要目的,其实不是控件本身,而是对先前所发如何写和使用类的补充。

授人以渔,不授人以鱼。
2015-11-30 12:07
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
当第一次使用TAB键时,只需要按一次,将所选内容即可显示在文本框中,鼠标滑轮滚动后,再按TAB键,要按两次才可以将所选内容显示在文本框中。
当文本框得到焦点时,按一次TAB键可将选定内容显示在文本框中。否则要按两次TAB键。

[此贴子已经被作者于2015-11-30 12:53编辑过]


坚守VFP最后的阵地
2015-11-30 12:51
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用sdta在2015-11-30 12:51:08的发言:

当第一次使用TAB键时,只需要按一次,将所选内容即可显示在文本框中,鼠标滑轮滚动后,再按TAB键,要按两次才可以将所选内容显示在文本框中。
当文本框得到焦点时,按一次TAB键可将选定内容显示在文本框中。否则要按两次TAB键。


改一下,滚动之后把焦点定回TextBox即可,在MouseWheel事件中,最后用SetFocus把焦点设回去。ListBox响应了鼠标事件,那么表明它已获得焦点,这个时候需要主动把焦点交还TextBox才好——在此情况下第一次按键盘被TextBox接管焦点应属于Bug。

[此贴子已经被作者于2015-11-30 13:02编辑过]


授人以渔,不授人以鱼。
2015-11-30 12:53
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
    PROCEDURE lstList.MouseWheel(tnDirection, tnShift, tnXCoord, tnYCoord)
        WITH This
            IF tnDirection < 0
                IF .ListIndex < .ListCount
                    .ListIndex = .ListIndex + 1
                ENDIF
            ELSE
                IF .ListIndex > 1
                    .ListIndex = .ListIndex - 1
                ENDIF
            ENDIF
        ENDWITH
        this.Parent.txtInput.SetFocus
    ENDPROC

坚守VFP最后的阵地
2015-11-30 13:10
快速回复:TextBox+ListBox组成的MyComboBox控件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030522 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved