2012/02/04

VB.Net DataGridViewのスクロールバーエラー

というわけで半月ぶりのBlogもまた Vb.Net覚書
今回は 自分がこの現象に遭遇した時 ぐぐったけどなにも出てこなくて
ちょっと苦労した DataGridViewの謎なエラー。
色々やったら解決したんで、同じ目にあってる人たちにも情報提供出来るかも。

DataGridViewがある画面で Me.Enabled = False など実行して その子オブジェクトである
DataGridViewの Enabledも False 状態にし
DataGridViewにある程度の量(スクロールバーで移動しないと行の最後に移動できない位)の行を
追加後 DataGridViewのEnabledが Trueになるように変更した場合
(この場合 Me.Enabled = True を実行した後ってことですな。)
垂直方向の スクロールバーがおかしくなるって現象がおきます。

スクロールバーの移動量が増えてなくて バーを動かしても最終行までは全然移動できず、
DownKeyなどで下行に移動していこうとすると途中で コントロールのシステムエラーが発生します。

色々試してみた所 回避方法がありました。
行を追加する前に DataGridViewの ScrollBarプロパティで垂直方法のスクロールバーを
なくし(状況とかお好みによって None または Horizontalで 垂直だけ消せばよい)
行を追加後に 垂直方向の ScrollBarプロパティで 表示(Vertical または Both) すればOK

ScrollBarを表示するのは 行を追加後であれば Enabledを Trueにするタイミングに
関係ありません。
同じ目にあってる人で解決してる人 あんまり見ないんで 参考になれば どぞ★


【追記:2015/10/10】
職場で発生した現象を自宅で書いてたので、正確なエラーとか覚えてなくて
誰かのお役にたつのかなぁ?と少し疑問にも思ってたんですが、存外
お役になっているようで何よりです。

それにしても縦スクロールが無効になることにも参考になるとは
こちらも勉強になりました。ありがとうござました。