ComboBox 的 Style 设为 csDropDownList 时如何使用?(100分)

  • 主题发起人 主题发起人 周浩
  • 开始时间 开始时间

周浩

Unregistered / Unconfirmed
GUEST, unregistred user!
为了限制输入,我将ComboBox的Style属性设为了 csDropDownList ,

但是出现了一个问题: 运行时的初始状态,ComboBox的输入框内容为空,

如何才能使其中的内容为我想要的Item呢?

 
在form的onactivate事件里加上
yourcombobox.itemindex:=0;//or 1,2....
 
在combobox1.items的书信中加入liu、ji、guang三项

procedure TForm4.FormCreate(Sender: TObject);
var
j:integer;
begin
j:=combobox1.Items.IndexOf('Ji');
combobox1.ItemIndex:=j;
end;
 
在form的onshow事件中加入combobox1.itemindex:=0;
 
combobox1.ItemIndex:=combobox1.Items.IndexOf('Ji');
 
combo1.text='abc';
 
大虎: csDropDownList 类型的不能设置text属性吧?
 
用他们上面的方法可以实现,不过你想限制输入,还有一种方法可以实现:
在设为csDropDown时,在onkeypress事件中加入
abort
 
cAKK没错。

这个问题有那么多人回答:)
我把他搞混乱点
理论上,如果要保存其信息应该那么做:
//formoncreate
var
inif:TInifile;
begin
inif := tinifile.create('yourini');
youcombbox.itemindex := inif.readinteger('yoursection','yourcombbox',0);
inif.free;
end;

//onformdestory
var
inif:TInifile;
begin
inif := tinifile.create('yourini');
inif.writeinteger('yoursection','yourcombbox',youcombbox.itemindex);
inif.free;
end;

//记得uses tinifiles
 
使用 RUNTIME 属性 ITEMINDEX

想限制输入?ENABLED:=FALSE 不就得了? :-)
 
csDropDownList本来就不能输入.
 
动弹不得不是更彻底嘛 :-)

如果需要的话还可以再打开。
 
但是disable之后,连下拉也不行了. :-(
 
这问题也值100分?快结束了吧.
 
问题确实简单,如果仅仅是想达到让用户只能下拉不能新增的目的,设为

DROPDOWNLIST并设置ITEMINDEX即可。不过后来的讨论好象把“限制输入”更深入了

一些,即用户连选择项目都限制,当然这也是个不错的想法,因为有些时候确实需要

限制用户对某种设置进行改动,而另一些时候又需要让用户进行选择(比如两个操作

权限不同的用户就可能对某些系统设置拥有不同的权限),在这种情况下我觉得让它

DISABLE比较好,这样用户一看就知道他无权改那个设置,不然他拉了半天却发现根

本改不了,说不定会立即拿出KV300杀杀病毒 :-))

这个话题说到此似乎也应该结束了。

BTW:我是今天才来的新朋友,请多关照 :-))
 
结束了吧!
 
后退
顶部