我定义了一个ComboBox的onvalidate事件,然后在选择完之后按回车为什么不调用这个函数呢,到底这个事件什么时候才会触发

解决方案 »

  1.   

    我的目的是这样的:选择后进行检验,如果为空,则自动选择,如果内容不符合要求就提示。反正就是对ComboBox的一个检验吧,但是现在就是按回车后不调用,或者焦点离开也不调用,但是将焦点移到一些另外的控件,就又执行了,所以说,实在是搞不清楚了我。求大虾指教。
      

  2.   

    校验值的么?放到ComboBox的OnChange事件中,也可以用OnKeyPress触发
      

  3.   

    不行啊,onchange是一直在判断的,因为这个ComboBox不是单选的,是我自己改写过的,现在是一个多选,所以我要加一个判断,就是选择不能多于10个(打个比方,也可以20个),所以放到onchange是不可行的
      

  4.   

    ComboBox多选?是ListBox还是ComboBox组件呢?
      

  5.   

    是我自己改写过的控件,继承自ComboBox,嗯,是多选,因为工作需要,所以改写了下!
      

  6.   

    嗯,这样是可以解决,但是我想知道,为什么onvalidate不行,请大虾赐教
      

  7.   

    调试下onvalidate事件吧,应该是没正确触发
      

  8.   

    我真怀疑这是不是delphi的漏洞啊!我们tm用的还是正版。。
      

  9.   


    property OnValidate: TCheckInputEvent read FOnValidate write FOnValidate;TCheckInputEvent = procedure(Sender: TObject; var Valid: Boolean) of object;
    我是通过此方式实现的,没有消息的传递
      

  10.   

    我顶!
    如果你真的要自己写一个事件的话,我建议你改写一下Comobox这个控件吧。你自己写一个OnValidate,确认触发该事件的条件。
      

  11.   

    delphi的combobox没有onvalidate,你自己封装的控件加的事件竟然不知啥时候会触发??
    若是你使用别人写的控件,那你竟然在csdb这里提问?更是匪夷所思啊。