5

4 つのタブ ページを持つタブ コントロールがあります。各タブ ページには、プログラムが最初に読み込まれたときにプログラムで追加するユーザー コントロールが含まれています。何らかの理由で、2 番目のタブ ページをクリックすると読み込みが遅くなりますが、他のタブは正常に読み込まれます。このタブ ページには、約 20 個のコントロール (テキスト ボックス、ドロップダウン、リスト ボックスなど) が含まれていますが、画像などは含まれていません。また、そのページには、他のページとほぼ同じ数のコントロールがあります。タブの切り替えを高速化する方法はありますか? 起動時にタブページをプリロードできますか?

注: 最初の切り替えでのみ遅くなります。

これは、ユーザーコントロールを追加する方法です

tabPage2.Controls.Add(userControl_1);
        // 
        // userControl_1
        // 
        userControl_1.Anchor = ((AnchorStyles.Top | AnchorStyles.Bottom)
                                  | AnchorStyles.Left)
                                 | AnchorStyles.Right;
        userControl_1.Location = new System.Drawing.Point(0, 0);
        userControl_1.Name = "userControl_1";
        userControl_1.Size = new System.Drawing.Size(878, 646);
        userControl_1.TabIndex = 0;
4

2 に答える 2

1

これは、TabControl の機能です。タブのコンテンツは、最初にクリックされたときにのみ読み込まれます。

したがって、2 番目のタブページでその UC の問題であると思われます。それが使用するリソース (クエリ) を探してください。

于 2010-11-24T15:35:38.223 に答える
1

すべてのコントロールをロードする前後に呼び出しSuspendLayoutていますか。ResumeLayout

そのようです

UserControlName.SuspendLayout();

//Load all of the controls

UserControlName.ResumeLayout();

これにより、ロードしようとしているすべてのコントロールが初期化されるまで、何も描画されません。

于 2010-11-24T15:47:05.950 に答える