親の TabPage が選択されるまで、TabControl の UserControls が読み込まれないことを発見しました。この遅延読み込みを防ぐ方法はありますか? メイン フォームの読み込み時に UserControls を初期化する必要があります。
3 に答える
はそのTabControl
コントロールを特別に扱いません。実際、コントロールが初めて表示される直前にのLoad
イベントが発生するのは、すべての状況で正常です。UserControl
はTabPage
コントロールを表示する責任があるため、最初に選択されたときにのみ「ロード」されます。
この (完全に正常な) Windows フォームの動作を克服するには、初期化コードを別のメソッドに移動して、ロード時に呼び出すか、初期化コードをのコンストラクターにForm
配置するだけで済みます。UserControl
どちらの方法でも、すぐに初期化を実行できます。
フォームの Load イベント ハンドラーで、タブに対して Tabcontrol の SelectTab() メソッドを呼び出すことができます。
あなたが説明するこのデフォルトの動作を実現する方法を探していました。私がサポートしているアプリケーションは、タブの読み込みを遅らせていませんでした。コンストラクターではなく、load イベントでタブが初期化されていたことが判明しました。
したがって、フォーム ロード イベントでタブをタブ コントロールに追加すると、タブ内のすべてのコントロールで、TabPages.AddRange 呼び出しの一部としてロード イベントが発生します。