我想让我的scrollbox通过上下键实现上下移动,但是不行!
代码如下:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
beginif key=VK_DOWN then
begin
scrollbox6.SetFocus;
with scrollbox6 do
begin
showmessage('adfa');
VertScrollBar.Position:=VertScrollBar.Position+200;
scrollbox6.SetFocus;
end;
end;if key=VK_UP then
begin
with scrollbox6 do
begin
VertScrollBar.Position:=VertScrollBar.Position-200;
scrollbox6.SetFocus;
end;
end;
end;

解决方案 »

  1.   

    问题解决,镇江兄的意思就是让Form始终响应键盘消息!
      

  2.   

    再补充楼上的说法,解释“让Form始终响应键盘消息”的意思就是:
    将Form的KeyPreview设置为True可以使窗体在组件之前接收键盘输入,否则键盘输入将被组件接收。你可能会问,我就是让scrollbox接收键盘输入哇,哪有什么“被组件接收”?
    呵呵,那是因为消息被默认处于激活的组件给接收了,你虽然有一句scrollbox6.SetFocus;可是没有用的,这个时候已经被当时处于激活状态的组件给接收了,如果它没有响应这个事件的处理程序,你看到的结果当然就是什么都没有发生。
      

  3.   

    加了Form1.KeyPreview := True 还是不行,
    我得scrollbox的align属性是alclient