Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9743

DataGridView の最下行で ↓ キーを押すとエラー (原因不明、対処のみ)

$
0
0

DataGridView の最下行で ↓ キーを押すと例外がスローされる。原因不明なまま。対症療法だが、問題が発生しなくなったので記録しておく。

エラーメッセージ

追加情報: '74537' の値は 'Value' に対して有効ではありません。'Value' は 'minimum' と 'maximum' の間でなければなりません。

  • 値 '74537' は表示する値によって変わる。

免責事項

このトピックの問題が発生すること、しないこと、問題を解決すること、環境に影響を与えないことを一切保証しない。本トピックの情報は、利用者の責任において使用することとする。

発生状況

  • 開発環境: Visual Studio 2015
  • ターゲット: .NET Framework 4.6
  • プロジェクト: WinForms, C#, VB.NET

Visual Studio のデザイナで、DataGridView のプロパティを設定する。以下に、表示に関係しそうな部分だけ抜粋する。

dgv.AllowUserToAddRows=false;dgv.AllowUserToDeleteRows=false;dgv.Anchor=((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top|System.Windows.Forms.AnchorStyles.Bottom)|System.Windows.Forms.AnchorStyles.Left)|System.Windows.Forms.AnchorStyles.Right)));dgv.RowHeadersVisible=false;

Load イベントで DataGridView.DataSource に List<MyModel> を代入してセル高さを自動調整に設定する。表示するテキストは不定長だが、数千文字以上のデータが存在した。

dgv.AutoGenerateColumns=false;dgv.DataSource=myModels.ToList();dgv.AutoSizeRowsMode=DataGridViewAutoSizeRowsMode.DisplayedCells;dgv.AutoSize=true;

表示後、マウスで一番下までドラッグしても最後の行まで表示されない。さらに、最後の行にフォーカスした状態でキー [↓] を押すと上記の例外がスローされる。

対処

表示する数千文字のテキストを数百文字に減らした。

調整した結果セルの高さが DataGridView? の表示領域より大きくなるデータが存在する場合にこの問題が発生するように見えた。

確認した環境

上記のとおり


Viewing all articles
Browse latest Browse all 9743

Trending Articles