combobox控件问题:
我用combobox控件的属性中设style的dropdown时无问题。
代码:
combobox1.clear;
combobox1.item.add('是');
combobox1.item.add('否');
combobox1。seltext := '是';
但我想不让用户在控件中写入字符,所以设style为dropdownlist时就不能显示出
所选的值。
怎样解决。

解决方案 »

  1.   

    combobox1.clear;
    combobox1.item.add('是');
    combobox1.item.add('否');
    combobox1.itemindex :=0;
      

  2.   

    可以这样写:
    combobox1.clear;
    combobox1.item.add('是');
    combobox1.item.add('否');
    combobox1.ItemIndex := 0;
      

  3.   

    不能用combobox1.ItemIndex := 0;
    因为我是读数据库中的字符串“是”
      

  4.   

    if table1.FieldByName('xxxx').AsString = '是' then
      combobox1.ItemIndex := 0
    else
      combobox1.ItemIndex := 1
      

  5.   

    combobox1.itemindex:=cobbobox1.Items.Indexof('是')
      

  6.   

    I think:
       combobox1.itemindex := -1;
      

  7.   

    combobox1.itemindex:=cobbobox1.Items.Indexof('是')
    我己试过了,都是不行
    但设style的dropdown时就无问题
      

  8.   

    解决方法有两种,一种是直接把Style属性设置成csDropDownList,你说设置成这个Style后显示不了选择的值,不是吧,我好象从来没有碰到过这个问题啊!另外,你可以还保持为csDropDown样式,然后到TComboBox对象的OnKeyPress事件中重新定义按键事件,这样procedure TMyForm.ComboBox1KeyPress(Sender:TObject;...);
    begin
      Key:=#0;  //这样,任何输入字符就都被屏蔽了!
    end;
      

  9.   

    哦,我明白你的意思了,既然你已经把Style设置成了csDropDownList,那么肯定你自己是不能在运行期间对Text属性赋值了,只能通过ItemIndex属性来间接的改变Text属性了所以,如果你是从数据库中直接读字符串“是”或“否”,那么你完全可以实现把ComboBox的Items属性设置为这两个字串,然后在读取后进行比较,然后改变ItemIndex的值!例如if StrReadFromDB='是' then
      ComboBox1.Items[0]:=StrReadFromDB
    else
      ComboBox1.Items[1]:=StrReadFromDB;
      

  10.   

    Sorry,写错了if StrReadFromDB='是' then
      ComboBox1.ItemIndex:=0
    else
      ComboBox1.ItemIndex:=1;