• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C# 列の挿入)

C# 列の挿入

このQ&Aのポイント
  • datagridview上に列を追加しようとすると「列のFillWeght値の合計が65535を超えることはできません」というエラーが出ます。
  • 追加する列数は8760列で、このエラーは列数が65535列を超えていることを示しているのか疑問です。
  • 解決策をご教授いただける方がいらっしゃいましたら、お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

FillWeightの値は列全体の個数ではなくその列の表示幅の比率です。 この値は各列ごとに100.0がデフォルトで与えられます。 また、エラーメッセージが示すとおり、データグリッドビュー全体ではFillWeightの値の合計は65535を超えることはできませんが、 8670 * 100.0 = 867000.0 > 65535 となり、十倍以上オーバーしています。 というか、一覧として項目が8670も必要になるデータって何なんでしょうか。 その中で一覧として本当に使うのは多くても10項目ではないか、と思いますが……。 (データ件数と間違えていませんか?)

その他の回答 (1)

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

> というか、一覧として項目が8670も必要になるデータって何なんでしょうか。 データベースのテーブルとかの形式としては普通ないですよね。。。 私は、 他に適当なコントロールが無いという理由から、単純な表形式コントロールの 扱いで、横並びの時系列データを画面に表示する目的で使っていたんですが、 DataSource に DataTable を設定する1行のコマンドで画面に表示するまで 数十秒~数分かかる事を確認しています。(列数にほぼ比例します。非表示なら 処理時間はそれほどかかりません。) この質問の現象も確認していて、それは msdnフォーラムに ColumnAdded イベントで FillWeight を設定する回答が付いていて 回避できたんですが、処理時間は短くできず、列数が多い場合は使えない コントロールなのかな。。。と思ってます。 (パソコンのスペックによりますが、数百のオーダーが限界かと。。。) # 内部処理で比率の計算とかを繰り返してるんじゃないかなぁ^^;