HOME >> Tips >> Microsoft.NET

DataGridView の列が多すぎてエラーが発生する

2016/2/12
文書番号:20466



DataGridView に大量の列を設定すると以下のようなエラーが発生しました。

==========================================================
列の FillWeight 値の合計が 65535 を越えることはできません。
==========================================================


クリックで拡大


試して見たところ 656列目を追加するタイミングで発生しました。
DataGridView の列は 655列が上限ということになります。

DataGridView で650列を越える列を設定してデータを表示してもまともに見ることができる気がしません。
そもそも その設計自体に問題があるようにも思えます。

Excel 2013 でも列は256列までなので その倍以上表示できる時点で十分ではないかと思います。

しかし、どうしても表示しなければならないこと(要望)もあります。
そんな場合の対応方法です。

【対応方法】

    DataGridView の ColumnAdded に以下のコマンドを記載します。
    
        Private Sub DataGridView1_ColumnAdded(sender As Object, e As System.Windows.Forms.DataGridViewColumnEventArgs) Handles DataGridView1.ColumnAdded
            e.Column.FillWeight = 1
        End Sub
    
    エラーメッセージにある「FillWeight」は1列当たり「100」に設定されているようです。
    655列で 65500 になるのでもう1列で 65535 を超え、エラーになるものと思われます。

    そこで列追加時に列の FillWeight 値を1に設定することで理論上、65535列まで追加できることになります。
    実際に65535列までは試していませんが 2000 列まで設定できるところまで確認しました。