| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 12454 人关注过本帖
标题:如何实现ComboBox只能选择文本不能修改?
只看楼主 加入收藏
rosege
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2008-8-31
收藏
 问题点数:0 回复次数:10 
如何实现ComboBox只能选择文本不能修改?
通过Style设置,都无法实现。要不就是变成列表了,不能选择文本,要不就是文本可以被修改。
请告诉如何实现,谢谢。
搜索更多相关主题的帖子: ComboBox 文本 选择 
2008-11-21 20:07
provoke
Rank: 2
来 自:广州
等 级:新手上路
威 望:5
帖 子:175
专家分:0
注 册:2007-6-14
收藏
得分:0 
Style设置为csDropDownList

爱我至爱,至死不渝!
2008-11-21 23:04
rosege
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2008-8-31
收藏
得分:0 
回复 第2楼 provoke 的帖子
Style设置为csDropDownList是下拉列表,我的想法是在这个状态下还可以选择文本,但不能修改。
另外,Style设置为csDropDownList不能通过combobox.text:='XX'来赋值。
2008-11-25 07:53
provoke
Rank: 2
来 自:广州
等 级:新手上路
威 望:5
帖 子:175
专家分:0
注 册:2007-6-14
收藏
得分:0 
呵呵,理解错误……原来你是想在类似 Edit 控件的只读效果,只不过 ComboBox 控件没有 ReadOnly 属性。
可以通过 OnKeyPress 事件处理来达到效果,即拒绝接受输入:
 key := #0;
Style 恢复默认即可选择。
但这样会把复制的 Control + C 也屏蔽掉,即使它不输入字符,如果想保留,就研究一下 OnKeyDown 事件吧……

爱我至爱,至死不渝!
2008-11-25 22:17
rosege
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2008-8-31
收藏
得分:0 
回复 第4楼 provoke 的帖子
谢谢版主解答。现在我是通过OnKeyPress来实现的。
不过key := #0之后,通过鼠标右键,还是能够输入字符。
有没有其他可以替代的控件?或者变通的方法。
2008-11-26 19:45
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
你指的右键粘贴还是可以修改???

那textchange事件呢?

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2008-11-26 19:48
rosege
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2008-8-31
收藏
得分:0 
以下是引用peach5460在2008-11-26 19:48的发言:

你指的右键粘贴还是可以修改???

那textchange事件呢?

麻烦说清楚些?
ComboBox的TextChange事件在哪里?是OnChange吗?
谢谢~~
2008-11-26 21:51
provoke
Rank: 2
来 自:广州
等 级:新手上路
威 望:5
帖 子:175
专家分:0
注 册:2007-6-14
收藏
得分:0 
给控件指定一个空右键菜单 PopupMemu,也就是添加一个 PopupMemu 控件,不为它添加任何菜单项,再把 ComboBox 的 PopupMemu 指定为此空菜单.

因为可接受输入的控件,未指定右键菜单时,系统会为其指定一个默认的菜单,有一些复制剪切贴切等菜单项.指定一个空菜单给它就可以了.

或者在点击右键的给个showmessage,提示此处禁止使用右键菜单.

爱我至爱,至死不渝!
2008-11-26 23:42
provoke
Rank: 2
来 自:广州
等 级:新手上路
威 望:5
帖 子:175
专家分:0
注 册:2007-6-14
收藏
得分:0 
给控件指定一个空右键菜单 PopupMemu,也就是添加一个 PopupMemu 控件,不为它添加任何菜单项,再把 ComboBox 的 PopupMemu 指定为此空菜单.

因为可接受输入的控件,未指定右键菜单时,系统会为其指定一个默认的菜单,有一些复制剪切贴切等菜单项.指定一个空菜单给它就可以了.

或者在点击右键的给个showmessage,提示此处禁止使用右键菜单.

爱我至爱,至死不渝!
2008-11-26 23:45
rosege
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2008-8-31
收藏
得分:0 
回复 第9楼 provoke 的帖子
用PopupMenu曾经在我的脑中闪过,可惜没有版主这么用心。
这招真是精妙。呵呵。学习了。
2008-11-28 08:36
快速回复:如何实现ComboBox只能选择文本不能修改?
数据加载中...
 
   



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

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