我在一个TEdit的KeyDown判断if key=13 then ...,但为什么总是接收不到这个13或VK_RETURN呢?试了好多方法,好菜的问题,但没办法了,求大家

解决方案 »

  1.   

    因为在KeyDown里面加车键的Key值不是13当然也不会是VK_RETURN
      

  2.   

    不好意思,误导误导。上面的说法有误。
    不过楼主可以把代码贴出来,并详细说明一下。
    不过拦截的话,在KeyDown里面拦掉之后,必要时还需要在KeyUp里面处理一下,因为拦截掉了KeyDown并不意味着KeyUp也被拦截掉,但是如果没有执行到,那就另找原因了。
      

  3.   

    在13前加#是编译不过的,楼主不有去用!
    你可以试试这句话:
    if key=13 then Edit1.Text:='你刚才按的是回车键,不过此次只能输入一行!';
    另外可能是你的if 语句没有用对!
      

  4.   

    是不是你的窗体的按钮有的设置成了default=true了.
      

  5.   

    可以收到呀
    procedure TForm1.Edit2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if Key = 13 then Edit1.text := 'Enter'
      else Edit1.text := '';
    end;
      

  6.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key = chr(13) then
        showmessage('enter');
    end;procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key = VK_RETURN then
        showmessage('222enter');
    end;
      

  7.   

    你把你的窗体的keypreview的属性设为真了吗,这个属性为真窗体才会接收键盘的消息!
      

  8.   

    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key = 13 then
        showmessage('回车');
    end;
    然后敲回车看看有没有触发
      

  9.   

    要不删除这个TEdit,再另加一个看看!不可能不行的.