テキストボックスの入力可能な範囲のサイズを取得するには?

解決


うなQ  2009-07-31 16:56:36  No: 146193  IP: 192.*.*.*

質問させてください。(VB2008)
テキストボックスを複数行入力可能(Multiline = True)にした場合で、かつスクロールバーを表示させる場合、
テキストボックスのスクロールバーを除いた領域のサイズって取得することは可能でしょうか?
つまり、テキストの入力領域のサイズ(高さ・幅)を取得したいのです。
アドバイスの程、よろしくお願い申し上げます。

編集 削除
魔界の仮面弁士  2009-07-31 17:14:52  No: 146194  IP: 192.*.*.*

Label1.Text = "外枠:" & TextBox1.Width.ToString()
Label2.Text = "内枠:" & TextBox1.ClientRectangle.Width.ToString()
Label3.Text = "垂直スクロールバー:" & SystemInformation.VerticalScrollBarWidth.ToString()

編集 削除
のぶ  2009-07-31 17:21:48  No: 146195  IP: 192.*.*.*

Form1 に TextBox1 , TextBox2 , Label1 , Label2 を置いて

TextBox1 には  Multiline = True  スクロールバーを設定し
下記のような事でしょうか。

TextBox1 のスクロールバーを除いた幅と同じに TextBox2 をすると
私のテストでは

        Label1.Text = TextBox1.Width    ' 132
        Label2.Text = TextBox2.Width    ' 116

...となりましたのでスクロールバーは16かな。

高さは  TextBox1.Height  で分かります。

編集 削除
うなQ  2009-08-01 06:20:34  No: 146196  IP: 192.*.*.*

みなさま、ご回答ありがとうございました。
魔界の仮面弁士さんのアドバイスのように、ClientRectangleプロパティより希望の値を取得することができました。
ありがとうございました。

編集 削除
うなQ  2009-08-01 06:21:20  No: 146197  IP: 192.*.*.*

解決済みです。

編集 削除