0

私はほとんど C# で、単純なネットワーク アナライザーを作成しようとしています。datagridview でパケットを表示できるようにしたい。想像上のレイアウトは、wireshark などのツールと比較できます。データグリッドビューを常に「満たす」ようにしたいと思います。塗りつぶされているとは、行が空であっても常に行が含まれていることを意味します。

たとえば、アプリケーションを起動するときに、グリッドを行で完全に埋めたいと思います。gridView の合計の高さは行の高さの倍数であるため、十分な行が含まれているため、正確に 100% 埋められます。ただし、データを追加するときは、これらの空の行をカウントしないようにしたいので、データがこれらの空の行を上書きし、削除すると、DataGridView が完全に満たされない場合はこれらの行が返されます。これを少しうまく説明できないかもしれませんが、そうでなければ私が意味することをどのように伝えようとすることができるかわかりません. たとえば、Excel の動作は理想的です。空のセルを含む全画面表示から始めて、それらに何かを追加できます。適合するよりも多くのデータを追加すると、すべてのデータを表示できるようにスクロール バーが導入されます。それを削除すると、スクロールバーは最終的に小さくなるまで小さくなります。もう必要ありませんが、セルは表示されたままです。(空いていても)

前もって感謝します、

アーノルド

-編集- 物の高さについて: 将来的にはサイズを変更できるようにしたいと思います。そのため、その情報はおそらく悪用できませんでした。

4

1 に答える 1

1

ユーザー コントロールで DataGridView をラップして、行の追加と削除をオーバーライドします。

行を削除する場合は、実際のものでなければなりません (「プレースホルダー」[タグ] としてマークされていません)。Count が IdealCount より小さい場合は、「プレースホルダー」行を追加します。

行を追加する場合 - Count が IdealCount より小さい場合は、最後の「プレースホルダー」行を削除します。

「プレースホルダー」行の IdealCount 数で初期化します。

デフォルト値 0 の非表示列と「プレースホルダー」の値 1 で行をソートするか、単純に Add オーバーライドで行の順序を自分で維持します。このように、「プレースホルダー」は常に最後になります (Count > IdealCount の場合、プレースホルダーはありません)。

于 2012-04-13T15:22:35.160 に答える