BasePanelユーザー コントロールから派生した多くのパネルを持つアプリケーションを開発しています。
アプリケーションの使用は、ウィザードの使用と非常によく似ています - 毎回異なるパネルが他のすべてのパネルの上に表示されます。
ユーザーのアクティビティがない場合、最初のパネルが表示されるように、タイマーのようなものが必要です。
ベースパネルのコードは次のとおりです。
public partial class BasePanel : UserControl
{
    private Timer timer = new Timer();
    public BasePanel()
    {
        InitializeComponent();
        timer.Interval = 5000;
        timer.Tick += timer_Tick;
        foreach (Control control in Controls)
            control.Click += Control_Click;
    }
    public event EventHandler NoActivity = delegate { };
    private void timer_Tick(object sender, EventArgs e)
    {
        NoActivity(this, EventArgs.Empty);
    }
    private void Control_Click(object sender, EventArgs e)
    {
        timer.Stop();
        timer.Start();
    }
    protected override void OnEnter(EventArgs e)
    {
        base.OnEnter(e);
        timer.Start();
    }
    protected override void OnLeave(EventArgs e)
    {
        base.OnLeave(e);
        timer.Stop();
    }
}
問題:
コンストラクBasePanelターは、派生InitializeComponent()が呼び出される前に呼び出されます。独自のコントロールがないため、コントロールはイベントに登録されませ
ん。  BasePanelControl_Click
これは通常の継承動作ですが、基本クラスで派生クラスのコントロールを登録するにはどうすればよいですか?