Form.KeyDown事件里面procedure TForm1.KeyDown()
begin
  If Key=VK_F1 then Edit1.SetFocus;
end;

解决方案 »

  1.   

    在Form1的onkeyDown事件中写:
    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var
      presskey : string;
    begin
      presskey  :=ShortCutToText(ShortCut(key,shift));
      if presskey = 'F1' then
      begin
        Edit1.SetFocus;
      end;
    end;
    前提,在uses中必须添加Menus单元,将Edit1的tabstop属性设为false,当然也可根据要求做一些改动,
      

  2.   

    还是tikkypeng(千两狂死郎) 的方法好,不好意思
      

  3.   

    我按照tikkypeng的方法作了
    procedure Tmain.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      If Key=VK_F1 then spin1.SetFocus;
    end;
    这里的spin1也是一个控件,可是我按下F1却没有转移呀,怎么回事呢
      

  4.   

    把 form 的 keypreview 改为true
      

  5.   

    那是不行的啊,只能用api啊,我想是这样的啊
      

  6.   

    怎么可能不行,
    如果你不把 form的 keypreview 改成true ,
    假设当前焦点在edit1 里面,
    如果此时你按F1 则只执行 edit1的 keydown 事件,只要使用tikkypeng(千两狂死郎) 的程序,
    然后把 form的 keypreview 改成true,
    绝对可以
      

  7.   

    前面的问题我试过了,是可以,不过我现在有一个radio选项控件,里面有三个选项,我现在在
    procedure Tmain.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
    If Key=VK_F5 then radio.SetFocus;
    end;
    问题是我想按下F5后就可以用键盘的上下键来选择不同的选项,可是我这个不知道为什么还是不起左右,为什么呢?
      

  8.   

    radio选项组的焦点该如何设定呢