C# スクロールバーを抜いた領域 | おーう なんじゃそら

C# スクロールバーを抜いた領域



内職でプログラムを組んでいたら

スクロールバーに悩まされました。


パネルにラベルを縦に羅列するプログラムなのですが

スクロールバー表示前の幅で調節していたものを

さらにAnchorで自動調節させるようにしていたため

スクロールバー表示後に表示されたラベルは

クソ正直にスクロールバーを無視したサイズで描画され

それまでに描画したラベルはAnchorで自動調節されるため


案の定幅がでこぼこに。



スクロールバーの幅をどこかで取得してやるのかなとあちこち調べましたが

全然出てこなくて数十分悩みました。


ところが、プロパティやらメソッドをあちこち見ていたら漸くみつけました。

ClientSize


これでクライアントが使用する領域が取得できるようです。

なのでClientSize.Widthでスクロールバーを抜いたサイズを取得することで

何とか解決。うむ、他にバグも見当たらないし、それなりに使えるものに仕上がりました。



作っていたのは、自作のリストボックスです。

指定した数のみ表示し、それ以外は別ページのように表示できるもの。

検索サイトの検索結果をイメージしてみました。

まだ本格的なテストはしていないので、もう少し改良が必要かもですが。


それにしても、今になって内職にまわしてよかったなと思いました。

まさかまる一日かかるなんて思わなくてw

早く終わったらRemotingも試したかったのですが、それはまた今度の機会に。