フォーカス移動を制御すべく

FormのKeyDownにて、

  //【↑】でフォーカス戻る
  if (Key = VK_UP) then
  begin
  SendMessage(self.Handle, WM_NEXTDLGCTL, -1, 0); //戻る
  Key := 0;
  end;

  //【↓】でフォーカス移動
  if (Key = VK_DOWN) then
  begin
  SendMessage(self.Handle, WM_NEXTDLGCTL, 0, 0); //進む
  Key := 0;
  end;

こんな事をしています。

しかし、画面上にパネルを2つ張って、それぞれのパネルの中に
Editコンポを1つづつ置いてもちゃんと上の処理でフォーカスが
移動してくれんんですが、これに3つ目のパネルを作って、
その中にボタンを貼ると、一旦ボタンにフォーカスが移動すると
その次へ移動できなくなります。

これが、パネルで分かれていない状態だと上手く行くのですが、
何が悪さをしているのでしょうか。