0

C# コードに多数の LinkLabels を追加する Windows フォームがあります。私が抱えている問題は、フォームが表示されると、画面上で上から下に徐々に溺れてしまうことです。しかし、私はそれが突然そして速く現れることを望んでいます。私は何をすべきか?私もこれを試しましたが、助けにはなりませんでした.visibleをfalseに設定しました. 次に、フォームにすべてのラベルを記入します。それからショーを呼んだ。

(別のフォームのラベルの MouseEnter イベントでフォームを new() および show() します。)

編集:DoubleBufferも試しました。役に立ちませんでした。フォーム全体が遅れて表示されるかどうかは気にしないことに注意してください。一挙に登場してほしいです。私の場合、少しの遅れは避けられないからです。データがネットワークから取得される原因。

前もって感謝します。

4

3 に答える 3

4

推測としてDoubleBuffered = true、フォームに設定してみてください。これは、画面に描画する前に、フォーム サーフェス全体をメモリ バッファーにレンダリングすることになっています。ただし、より良い解決策は、フォームのレンダリングが非常に遅い原因を突き止めることです。UI スレッドで多くのロジックが発生しない限り、通常、フォームは認識できません。

于 2012-04-17T09:14:23.563 に答える
2

アプリケーションのプロファイルを作成する必要があります。その理由として次のことが考えられます。

  • ロード中の集中的なデータ生成 (視覚化する必要があるコントロールの量、別のスレッドでロードまたは実行するデータの量によって削減できます)

  • 表示されているコントロールが多すぎます (TabControl の異なる TabPages でそれらを整理するだけです。コントロールが多すぎる場合は、それらを避けてください。ユーザーがそれらすべてを現代的に必要としないためです。

  • 最後に重要なこと: is SuspendLayout()/ ResumeLayout() は、ロードの開始時と最後にあります。

お役に立てれば。

于 2012-04-17T09:15:24.247 に答える
0

アイデア:

おそらく、すべての を に置き、LinkLabelPanelに設定してから、 を に追加します。PanelDockFillPanelForm

于 2012-04-17T13:03:33.613 に答える