| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
绝地游戏外挂辅助教学千里之行 始于足下
共有 995 人关注过本帖
标题:在组合框的列表中选择不能达到目的
只看楼主 收藏
zlz66668888
Rank: 5Rank: 5
等 级:职业侠客
帖 子:467
专家分:386
注 册:2009-2-21
结帖率:97.14%
  已结贴   问题点数:20  回复次数:13   
在组合框的列表中选择不能达到目的
现在,用鼠标点击la时,能够把组合框中的文本框替换成“六安”。
不打开列表,输入la后,按下回车键,也能替换成“六安”。
但用alt+向下方向键打开列表时,按回车键选择,却做不到。
请大师们帮我看看!

附件: 您没有浏览附件的权限,请 登录注册
搜索更多相关主题的帖子: 六安  文本框  
2015-11-18 21:00
吹水佬
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:117
帖 子:4832
专家分:19785
注 册:2014-5-20
  得分:10 
DisplayValue是选定项的第一列的内容,会自动处理的,不用赋值。
列表数据可以这样:安庆,aq,合肥,hf,杭州,hz
输入代码自动选定项目可在KeyPress或InteractiveChange事件中处理:
    IF EMPTY(this.Value)
        this.Value = this.DisplayValue
    ENDIF


2015-11-18 22:11
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15455
专家分:65956
注 册:2006-4-27
  得分:2 
试试看什么情况
2015-11-19 08:15
zlz66668888
Rank: 5Rank: 5
等 级:职业侠客
帖 子:467
专家分:386
注 册:2009-2-21
  得分:0 
回复 2楼 吹水佬
经试验,您的解答解决了我的问题。
其实,我这样做的一个主要目的是两个:
1、在组合框中输入字母按下回车就能自动定位
2、主要是想增量查询,也就是在打开列表的时候,也能像西文字母一样,如输入h定位到“合肥”,输入hz定位到“杭州”。
按照您目前的做法,这个增量查询就做不到了。
不知是否还能做到在列表打开的情况下,也能使用增量查询。


[此贴子已经被作者于2015-11-19 16:36编辑过]

2015-11-19 16:35
吹水佬
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:117
帖 子:4832
专家分:19785
注 册:2014-5-20
  得分:0 
回复 4楼 zlz66668888
最好写个MyComboBox,用TextBox + ListBox 或 Grid + CommandButton等,这样较合心意。
2015-11-19 16:40
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:65
帖 子:2123
专家分:5175
注 册:2015-3-25
  得分:0 
以下是引用吹水佬在2015-11-19 16:40:29的发言:

最好写个MyComboBox,用TextBox + ListBox 或 Grid + CommandButton等,这样较合心意。

怎么把TextBox + ListBox封装成类?MyComboBox.vcx

2015-11-19 16:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
注 册:2011-6-22
  得分:2 
ComboBox本身就存在缺陷,無法滿足樓主要求,這在張洪舉的書中專門講述的,還給出了解決辦法。自己用TextBox+ListBox組合一個定製的。

授人以渔,不授人以鱼。
2015-11-19 19:50
吹水佬
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:117
帖 子:4832
专家分:19785
注 册:2014-5-20
  得分:2 
以下是引用mywisdom88在2015-11-19 16:57:46的发言:


怎么把TextBox + ListBox封装成类?MyComboBox.vcx

简单来说就好象这样:
程序代码:
of = CREATEOBJECT("form1")
of.show(1)

DEFINE CLASS form1 as Form
    ADD OBJECT combo1 as mycombobox WITH top=10,left=10
ENDDEFINE

DEFINE CLASS mycombobox as Container
    BackStyle = 0
    BorderWidth = 0
    width = 150
    height = 20
   
    ADD OBJECT text1 as textbox WITH height=20,width=100
    ADD OBJECT command1 as commandbutton WITH left=100,height=20,width=20,caption="∨"
    ADD OBJECT list1 as listbox WITH top=20,width=130,height=100
   
    PROCEDURE command1.click
        this.Parent.height = IIF(this.Parent.height == 20, 120, 20)
    ENDPROC
   
    PROCEDURE list1.MouseLeave(nButton, nShift, nXCoord, nYCoord)
        this.Parent.height = 20
    ENDPROC
ENDDEFINE
2015-11-19 20:52
zlz66668888
Rank: 5Rank: 5
等 级:职业侠客
帖 子:467
专家分:386
注 册:2009-2-21
  得分:0 
回复两位版主:
尝试把KeyPress的代码稍加修改,即可以满足要求:
程序代码:

if nKeyCode=13
    if ! empty(this.value)
        nodefault
        *messagebox(this.displayvalue+chr(13)+this.value)
        this.displayvalue=this.value
        thisform.text1.setfocus
        *this.requery
        *this.refresh
    endif
endif

nodefault 和thisform.text1.setfocus是新加的,对1楼的程序进行简单的改造,现在可以满足要求。

[此贴子已经被作者于2015-11-20 10:03编辑过]

2015-11-20 10:01
吹水佬
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:117
帖 子:4832
专家分:19785
注 册:2014-5-20
  得分:2 
回复 9楼 zlz66668888
好象还有点问题,当展开下拉列表时按上下方向键试试(原来是鼠标也在下拉列表框时)

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

2015-11-20 10:18







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

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