8

一部のデータを表示する必要がある datagridview テーブルがあります。特定のインスタンスでは、列数の制限を超えて次のエラーが発生します。

列の FillWeight 値の合計は 65535 を超えることはできません

この制約を克服するために使用できる他のツールはありますか?

4

3 に答える 3

17

グリッド イベントを開きcolumnAddedます。

private void dataGridViewName_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
{
    e.Column.FillWeight = 10;    // <<this line will help you
}
于 2015-08-19T21:30:20.553 に答える
11

DataGridView の列のデフォルトの塗りつぶしの重みは 100 です。これをグリッドの最大組み合わせ塗りつぶしの重み 65535 と組み合わせると、AutoGenerateColumnstrue に設定すると、データ ソースに 655 を超える列を含めることができないことを意味します。

これよりも多くの列が必要な場合、唯一の解決策はAutoGenerateColumns、グリッドを false に設定し、異なる塗りつぶしの重みで列を手動で追加することです (0 が有効な塗りつぶしの重みかどうかわからないため、必要になる場合があります) 1を使用します)。


別の設計を検討する価値があるかもしれません-DataGridViewに非常に多くの列があると、あまり使い物になりません.DataGridViewのパフォーマンスは最大100列に対してのみ調整されます(DataGridViewによるこのフォーラム投稿からその図を取得しましたプログラムマネージャー)

于 2013-05-12T13:48:21.737 に答える
-6

65,535 の場合、16 ビットの数値です (2^16=65,536 なので)。つまり、Int16変数を取得したということです。このデータ型の制限を増やすには、Int32またはInt64データ型を使用する必要があります。

于 2013-05-12T13:12:33.960 に答える