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

コントロールのサイズ

環境/言語:[Win2000 VB.NET 1.1]
分類:[.NET]

もしかして、恥かしい質問かもしれませんが

例えば
Left=0
Width=100
の場合、
このコントロールの実際の描画サイズは、
0〜99 = 100 ピクセル
0〜100 = 101 ピクセル
1〜100 = 100 ピクセル
のどれなのでしょうか
> Left=0
> Width=100
> の場合、
> このコントロールの実際の描画サイズは、
> 0〜99 = 100 ピクセル
> 0〜100 = 101 ピクセル
> 1〜100 = 100 ピクセル
> のどれなのでしょうか

”実際の描画サイズ”というのがいまいちわかりませんが、
コントロールに描画して実際に表示される(目視できる)領域という意味でしたら、
次のように考えることができます。

フォームなどをはじめとする、コントロールには境界線があります。これは
BorderStyleの値によってその幅(SystemInformationクラスの各プロパティで
取得可能)が違います。一般的にコントロールのWidthプロパティで取得できる
値はこの境界線も含めた値です。従って、Widthプロパティで描画すると
境界線の部分は隠れています。この境界線を除いた幅を取得するには、
コントロールのClientSizeプロパティを参照すればいいと思います。
antさんこんにちは、
> ”実際の描画サイズ”というのがいまいちわかりませんが、
例えば、FormにTextBoxを貼る場合、
TextBox.Left=0
TextBox.Width=100
とした場合TextBox全体の占める領域は、
FormのClient領域の、
X=0〜99ピクセルを占有するのか、
1〜100 or 0〜100なのか
ということをお尋ねしたいのです
> 例えば、FormにTextBoxを貼る場合、
> TextBox.Left=0
> TextBox.Width=100
> とした場合TextBox全体の占める領域は、
> FormのClient領域の、
> X=0〜99ピクセルを占有するのか、
> 1〜100 or 0〜100なのか
> ということをお尋ねしたいのです

同様の考え方で考えられると思います。
Borderの幅などは設定次第でいくらでも変えられるので、
一概に0〜99、1〜100などととはいえないと思います。
antさん、すみません
> Borderの幅などは設定次第でいくらでも変えられるので、

親の座標系云々ではなく、
単純に、コントロールの外観は100ピクセルなのか101ピクセルなのか
例えば、userControlなどで自身をPaintする場合(自身のBorderを含めて)
自身の描画すべきピクセルの座標は、
0〜99 or 1〜100 or 0〜100なのか
という質問だったのですが、

いろいろテストしてみた結果
0〜99 の 100ピクセルだったみたいです。
解決済み!

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