• 主页
  • 招聘
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API

一个combobox选项的小问题

秋天之落叶 2019-05-13 06:07:40
combobox控件选择一个项可以判断,如果什么也没选,如何判断?

比如,在combobox的下拉选项有1和2,在SELECT事件中:

if combobox.text='1' then
edit.text:='1'
else if combobox.text='2' then
edit.text:='2'
else
edit.text:='';

我想实现当我选了1显示1后,再选空时edit.text:='',上边的判断实现不了?判断combobox.text=''和itemindex<0也不行,如何解决?
选1显示1,选2显示2,什么也不选显示空,且每次选择都实时变化。
我不要在combobox离开事件中实现。
...全文
1199 点赞 收藏 28
写回复
28 条回复
秋天之落叶 2019年05月31日
引用 27 楼 mmm52013 的回复:
楼主会调Jcombobox样式吗

没用过,不会
回复 点赞
mmm52013 2019年05月28日
楼主会调Jcombobox样式吗
回复 点赞
秋天之落叶 2019年05月27日
引用 25 楼 萱爸比 的回复:
第三项输入几个空格!!

除非你的选项中有这个空格(一个就行),否则输几个都不能判断
回复 点赞
萱爸比 2019年05月27日
第三项输入几个空格!!
回复 点赞
住手丶让我来 2019年05月16日
打断点调试,看看选择空的时候,combobox.text的值是多少就可以做判断了
回复 点赞
小小新手 2019年05月16日
我想你应该是要先确认需求,然后在想怎么实现
回复 点赞
我一般都直接给个全部的下拉选项 然后让它=""
回复 点赞
CACACACACA 2019年05月14日
拦截消息吧。如果没点下拉的list或按了esc键等。因为这点事感觉不值当。
回复 点赞
秋天之落叶 2019年05月14日
引用 11 楼 无聊的猪 的回复:
[quote=引用 8 楼 秋天之落叶 的回复:]
[quote=引用 6 楼 无聊的猪 的回复:]
如果是清空内容的话,要在Change事件中处理

选1显示1,再不选任何项清空,change里面实现不了,change好像是录入内容改变时的事件。[/quote]
select事件与change事件结合使用啊 [/quote]
我试了一下,不录入只选择空(不是空项目,是不选择)还是判断不了
回复 点赞
无聊的猪 2019年05月14日
引用 8 楼 秋天之落叶 的回复:
[quote=引用 6 楼 无聊的猪 的回复:] 如果是清空内容的话,要在Change事件中处理
选1显示1,再不选任何项清空,change里面实现不了,change好像是录入内容改变时的事件。[/quote] select事件与change事件结合使用啊
回复 点赞
秋天之落叶 2019年05月14日
引用 9 楼 victor_yang 的回复:
我的做法是:
1、初始时Items.clear,马上增加一个''
2、增加选项
3、判断选项时就判断text是不是''就好
当然,在某些情况下,你也可以不加'',加'全部'也行

看来确实是没有不选择项的状态判断了。
OnSelect事件后再加一个OnNotSelect事件就好了,哈哈哈
好好的行里加一个''看着有点别扭,嘿嘿
回复 点赞
victor_yang 2019年05月14日
我的做法是: 1、初始时Items.clear,马上增加一个'' 2、增加选项 3、判断选项时就判断text是不是''就好 当然,在某些情况下,你也可以不加'',加'全部'也行
回复 点赞
秋天之落叶 2019年05月14日
引用 6 楼 无聊的猪 的回复:
如果是清空内容的话,要在Change事件中处理

选1显示1,再不选任何项清空,change里面实现不了,change好像是录入内容改变时的事件。
回复 点赞
秋天之落叶 2019年05月14日
引用 4 楼 doloopcn 的回复:
combox为List状态,实现不了。

建议增加空白选项

也就是说只能判断选择一个项状态,不选择是没有办法判断的?
增加一个空行总觉得不是那么回事,唉
回复 点赞
无聊的猪 2019年05月14日
如果是清空内容的话,要在Change事件中处理
回复 点赞
别打酱油 2019年05月14日
引用 4 楼 doloopcn 的回复:
combox为List状态,实现不了。

建议增加空白选项

刚刚试过,加入'',1,2,这3个选项,选空的时候可以实现楼主的效果
回复 点赞
doloopcn 2019年05月14日
combox为List状态,实现不了。

建议增加空白选项
回复 点赞
早打大打打核战争 2019年05月14日
就用TComboBox.Tag即可,如果你没做他用的话
回复 点赞
秋天之落叶 2019年05月14日
引用 18 楼 早打大打打核战争 的回复:
[quote=引用 16 楼 秋天之落叶 的回复:]
[quote=引用 15 楼 早打大打打核战争 的回复:]
你的“不选”是什么概念,点开下拉列表框什么都没选就收起来了?

是的,然后下拉框的内容是空的,和初始状态一样。[/quote]

设置一个标志,比如叫UserSelected,在OnSelect事件处理中设置该标志为true,OnDropDown事件处理中设置该标志为false,然后判断该标志即可
[/quote]
我试一下,感觉有点复杂,几十个下拉,都要一一改过。
回复 点赞
秋天之落叶 2019年05月14日
引用 17 楼 victor_yang 的回复:
如果你想回到初始状态就加个'',onchange事件要小心,当你在给combobox加item时,有可能会触发onchange事件

不费劲了,还是加一个''吧,不好看就不好看吧,简单
回复 点赞
发动态
发帖子
Delphi
创建于2007-08-02

1471

社区成员

26.2w+

社区内容

Delphi 开发及应用
社区公告
暂无公告