こんにちは。
質問です。よろしくお願いします。

■環境
VisualStudio2012 C# Windowsフォームアプリケーション

■やりたいこと
30個くらいある全てのフォームで、「Enterキーが押されたらTabキーを押したときのように、
次のコントロールにフォーカスが遷移する」機能を、効率良く実装したい。

■条件
各フォームにKeyDownイベントが存在する。

■やってみたこと
・基底クラスを作成し、「FrmBase_KeyDown()」を定義して、
そこでEnterキーが押されたかを判定して次のコントロールに遷移するよう実装し、
各フォームはこの基底クラスを継承した。

・だいたいはうまくいった。

・ところが、派生クラス側にKeyDown()イベントが存在する場合、
基底クラスのKeyDown()が先に呼ばれて次のコントロールに遷移してしまい、
派生クラスのKeyDown()イベントが呼ばれない。

・先に派生クラスのKeyDown()イベント内の処理が動いてから、
次のコントロールに遷移したい。

こういうとき、どのように実装するのが効率良いのでしょうか。
意見、参考サイト等、教えて頂けたら幸いです。

public class FrmBase : Form
{
    private void FrmBase_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            // Enterキーが押されたら、次のコントロールにフォーカス移動
            this.SelectNextControl(this.ActiveControl, true, true, true, true);
            e.Handled = true;
        }
    }
}

public class FrmChild : FrmBase
{
    private void TextBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            // Enterキーが押されたら、ある処理をする
        }   
    }
}