• ベストアンサー

VB6.0でのTextboxの高さ変更

VB6.0を使用しています。 下記のようにテキストボックスを動的配置した際にボックスの高さを変更したいのですが、文字の大きさ等に依存しているよう?で変更できません。 よく似た質問でMultiline をTrueにするような物があり、試してみましたがエラーとなってしまいます。 もう少し小さくしたいのですが何を変更・追加すればよいのでしょうか? どなたかご教授願います。 Private Sub Form_Load() Dim add_tbox As TextBox Set add_tbox = Controls.Add("VB.textbox", "text") With add_tbox .Text = "aaa" .Height = 240 '---テキストボックスの高さ .Left = 2270 .Top = 1700 .Width = 350 .FontSize = 9 '.MultiLine = False ---これを追加するとエラー"値の取得のみ可能なプロパティに値を設定する事はできません" .Visible = True End With MsgBox add_tbox.Height '---テキストボックスの高さ確認(270となっている) End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • NYOI
  • ベストアンサー率58% (56/96)
回答No.1

>文字の大きさ等に依存しているよう?で変更できません。 これに気づいているのなら、もう一歩。 裏技的ですが、Heightを指定する前にフォントサイズを一度小さい値にしてみましょう。 例えば .FontSize = 2 .Height = 240 .FontSize = 9 これでうまくいくはずです。 面倒くさいですが、こういった回避法しか無さそうです(´・ω・`)

sorexxx
質問者

お礼

なるほど、一旦フォントを小さくして高さを指定すると可能なんですね。 そのような方法は、まったく考えもつきませんでした。 試して見たところ、この方法で思っていた通りの高さに調整するができました。(感動です!)大変ありがとうございました。

その他の回答 (1)

回答No.2

API関数を利用すれば以下のような感じで出来ます。 (単位が変わってしまいますが。。。) Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long Private Sub Form_Load() Dim add_tbox As TextBox Set add_tbox = Controls.Add("VB.textbox", "text") Call MoveWindow(add_tbox.hwnd, 10, 20, 35, 10, 1) add_tbox.Text = "aaa" add_tbox.Visible = True MsgBox add_tbox.Height '---テキストボックスの高さ確認(270となっている) End Sub

sorexxx
質問者

お礼

ありがとうございます。 回答頂いたコードで高さを規定値より低くできたのは確認しましたが、何分初心者の物で現段階では、API関数とは?といった状態です。 でも、いろんな方法を教えて頂けることは非常にありがたいです。 このように具体的にコードを書いて頂けると、コードの意味を一つずつ調べ、どのような内容か確認できるので、今後の為に参考にさせて頂きたく思います。 ご回答、本当にありがとうございました。

関連するQ&A

専門家に質問してみよう