一个员工管理系统中,有个画面,
上面有个项目就是性别.
在追加机能中,是dropdown控件(TDBComboBox),内容是男/女。
但是,在参照画面中,想让性别不能编辑。(参照和追加都用一个画面)客户的要求是:参照的时候,要和一般的textbox一样显示,能捕捉focus,不灰显,而且,不能编辑,不能更改。因此我写了下面的代码:if(参照的场合)
TDBComboBox.DroppedDown := False;
TDBComboBox.Style := csSimple;
TDBComboBox.ReadOnly := false;结果:虽然是和textbox一样了(能有focus,能显示出男/女),
但是,也能修改了。比如,本来显示男,我输入女也可以了。
为什么readonly不起作用呢?提问:如何才能让它不能修改呢?(不用enabled=false,这样的话就灰显了,而且不能获得focus)
上面有个项目就是性别.
在追加机能中,是dropdown控件(TDBComboBox),内容是男/女。
但是,在参照画面中,想让性别不能编辑。(参照和追加都用一个画面)客户的要求是:参照的时候,要和一般的textbox一样显示,能捕捉focus,不灰显,而且,不能编辑,不能更改。因此我写了下面的代码:if(参照的场合)
TDBComboBox.DroppedDown := False;
TDBComboBox.Style := csSimple;
TDBComboBox.ReadOnly := false;结果:虽然是和textbox一样了(能有focus,能显示出男/女),
但是,也能修改了。比如,本来显示男,我输入女也可以了。
为什么readonly不起作用呢?提问:如何才能让它不能修改呢?(不用enabled=false,这样的话就灰显了,而且不能获得focus)
我其实是写的
TDBComboBox.ReadOnly := true;
可是不管用。还是能编辑。
我想到一个办法,就是说能不能设定TDBComboBox的某个属性。
让键盘压下的时候,不去捕捉,这样能不能行呢?
不过具体做法也不会。
我刚接触delphi是个新手,大家帮帮忙吧
cxDBComboBox1.Properties.DropDownListStyle := lsFixedList;
cxDBComboBox没有Properties属性,编译报错。to xuangege
不能STYLE属性为:csDropDownList,因为,这样的话,也就能编辑了。
比如,原来是男,也可以变成女了。
前提是必须要用cxDBComboBox显示,所以,sql显示不能做。
begin
inherited;
//默认值
Properties.AutoSelect := False;
Properties.DropDownAutoSize := True;
Properties.DropDownListStyle := lsEditList;
Properties.DropDownRows := DROPDOWN_ROWS;
Properties.DropDownSizeable := True;
Properties.IncrementalFiltering := False;
Properties.Revertable := True;
Properties.OnChange := _OnChange;
Properties.UseLeftAlignmentOnEditing := False;
end;
所以,就一直卡在这里了。
to jerry8
你是用的TDBComboBoxTDB么?
怎么看不太明白呢,还是新作一个constructor呢
那你把if去掉试试,TDBComboBox.ReadOnly := true;
直接如果还是能编辑我就无解了。。