Edit 的 OnChange 用于捕捉输入的字符,如何等于5个则查询数据,当输入完成后回车,执行Button1Click(Self);要怎么处理?我先是在 Edit 中写 OnChange ,如果字符数等于5则查询数据,然后, 发现 OnChange 中没有 Key 参数。
于是在 OnKeyDown 写 if key=13 then ShowMessage('Clicked') 可是发现在Edit1中输入字符后按回车没有任何反应,这是为何呀?

解决方案 »

  1.   

    if key=#13 then showmessage('ok')
      

  2.   

    在OnKeyPress事件中if key=#13 then .....或者在OnkeyDown事件中
    if key=VK_RETURN then ...
      

  3.   

    saien(有问必答) 
       不行,试过,没有任何反应,是不是还有别的地方要设置呀?OnKeyPress 一样不行。   我把这个Edit放在一个 Panel里,是不是因为这个呀?
      

  4.   

    if key=#13 then
    ShowMessage('click me now !');
      

  5.   

    saien(有问必答) 
       不行,试过,没有任何反应,是不是还有别的地方要设置呀?OnKeyPress 一样不行。   我把这个Edit放在一个 Panel里,是不是因为这个呀?以上答案全部不行,我一个个试过!
      

  6.   

    你的窗体上是否有SpeedButton控件,把他们全去掉试试!
      

  7.   

    写在OnKeyPress里即可,可以监测到大部分控制按钮
      

  8.   

    onkeypress
    然后form的keypreview属性为true
      

  9.   

    在OnKeyDown 中:
     if key=13 then
      ShowMessage('这次行不行!');
      

  10.   

    复人: guanjueweimiao(感觉微妙) ( ) 信誉:100  2003-11-06 10:45:00  得分:0 
     
     
      在OnKeyDown 中:
     if key=13 then
      ShowMessage('这次行不行!');  
    照样不行! 
      

  11.   

    ??
    会有这种事??
    真是奇怪。把Form的KeyPreviey置为True
    到Form的OnKeyDown中去写事件。!!!procedure TForm1.OnKeyDown(...);
    begin
      if ActiveControl=Edit then
      begin
        if Key=13 then
        begin
          ShowMessage('这样不可能不行!');
          
        end;
      end;
    end;
      

  12.   

    同意楼上兄台的看法,如果还不行,那就重新生成窗口试试。
    我肯定的是与edit控件无关