就是比如cmb1.text:='1';  //这句话以后就可以触发Onchange事件
cmb2Change(self);  //即使有这句也还是触发不了!或用Select事件也一样,奇怪了前提是:我已经保证 '1' 是Cmb下拉框中的一个Item了我的Cmb.style:=csDropDown是不是有些什么属性要设置啊? 我就是想让 cmb1.text:='1'; 这句后马上触发Change事件谢谢

解决方案 »

  1.   

    cmb1.text:='1';  //这句话以后就可以触发Onchange事件
    cmb2Change(self);
    你是触发cmb1的change事件还是cmb2的?还有,参数应该是cmb本身,而不是self
    cmb1Change(cmb1);
      

  2.   

    谢谢  NightCloud原来我写错了1。 cmb1.text:='1';  //这句话以后就可以触发Onchange事件
    2。 cmb1Change(cmb1);那有没办法在1。句后直接就触发Cmb1Change事件,而不需要加2。句?
    我试了好像去掉2。就不行了
      

  3.   

    又有问题而且是主要总是:就是 Cmb1.text:='1' 后,好像Cmb1.itemIndex并不会跳到 '1'的那个啊?难道要自己去判断吗?
      

  4.   

    不要用cmb1.text := '1';var i: integer;
    for i := 0 to cmb1.items.count  - 1 do
    begin
       if cmb1.items[i].text = i then
       begin
         cmb1.itemindex := i;
         exit;
      end;
    end;
      

  5.   

    谢谢不过还是不好啊procedure TForm1.Button1Click(Sender: TObject);
    var i: integer;
    begin
    for i := 0 to cmb1.items.count  - 1 do
    begin
       if cmb1.items[i]='2' then
       begin
         cmb1.itemindex := i;          //也并不会触发Onchange事件
         exit;
      end;
    end;
    end;帮助里也说到: 除非手动去选才会触发OnChange
    算了,只能这样了,还是自己加个OnChange好了
    奇怪,为什么就没这种自动事件呢?