DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGridViewで常に縦スクロールバーを表示する際

環境/言語:[VB.NET .NET Framework4.5]
分類:[.NET]

DataGridViewを継承して、コントロールを作成しています。
縦スクロールバーを常に表示したいのですが、下記のことが出来ずに悩んでおります。

1)縦スクロールバーを表示したとき、実際の表が表示される領域がスクロールバーの分
狭くならない為、セル(ヘッダー含む)がスクロールバーの後ろに隠れてしまう。

2)横スクロールバーが表示されている時、横スクロールバーのWidthが縦スクロールバーの分小さくならない。

2のほうは、横スクロールバーの大きさを変更すれば、横スクロールバーは小さくなるのですが、
小さくなった部分の描画が行われない為に、黒く表示されてしまいます。

ウォッチで、スクロールバーがある時、ない時を比べると、LayoutInfoのColumnHeaders.Width、Data.Width、ResizeBoxRect
の値が変化していることは分かったのですが、この値をプログラムから変更する方法が分かりません。

この値を変更する、もしくは別の方法がありましたら、ご教授ください。
> ウォッチで、スクロールバーがある時、ない時を比べると、LayoutInfoのColumnHeaders.Width、Data.Width、ResizeBoxRect
> の値が変化していることは分かったのですが、この値をプログラムから変更する方法が分かりません。

.NET Framework4.0の物ですが、DataGridViewのソースを眺めてみたところ、
内部で計算して求めているっぽいので、外部から変更するのは無理そうですね。

やろうとすると、DataGridViewのソースから必要部分を書き換えて実装するしか
なさそうですが、ライセンスの関係上、改変して配布するとなるとダメみたいですね・・・

とりあえず、横スクロールバーが出ないようレイアウトするしかなさそうなので
解決済みとさせていただきます。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板