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

解決


うなQ  2009-08-01 01:56:36  No: 146193

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


魔界の仮面弁士  2009-08-01 02:14:52  No: 146194

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


のぶ  2009-08-01 02:21:48  No: 146195

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 15:20:34  No: 146196

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


うなQ  2009-08-01 15:21:20  No: 146197

解決済みです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加