に何百もの「アイテム」を表示するダッシュボードアプリケーションを作成していFlowLayoutPanelます。
各「アイテム」は、UserControl12個のテキストボックスまたはラベルで構成されています。
私のアプリはデータベースにクエリを実行し、各レコードの「アイテム」インスタンスを作成し、ラベルとテキストボックスにデータを入力してからに追加しFlowLayoutPanelます。
パネルに約560個のアイテムを追加した後、タスクマネージャーの数が約7300に増えたことに気付きUSER Objectsました。これは、私のマシン上の他のどのアプリよりもはるかに多いものです。
560 * 13(12個のラベルとUserControl自体)は7280であると考えました。そのため、すべてのオブジェクトがどこから来ているのかが突然わかりました...
Windowsがタオルを投げる前に10,000USERオブジェクトの制限があることを知って、私はこれらの「アイテム」をに描画するより良い方法を見つけようとしていFlowLayoutPanelます。
これまでの私の考えは次のとおりです。
多くのラベルの代わりに、を使用
graphics.DrawTextして「アイテム」をユーザーが描画します。これが13ではなくDrawImage1アイテム=1を意味することを願っています。USER Object「アイテム」のインスタンスを1つ作成し、レコードごとにインスタンスにデータを入力し、
Control.DrawToBitmap()メソッドを使用して画像を取得してから、FlowLayoutPanel(または同様の)で使用します。
だから...誰か他に何か提案はありますか?
PSこれはズーム可能なインターフェイスなので、すべてのアイテムを一度に表示する必要があるため、「ページング」はすでに除外しています。