プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (2件)

>文字の大きさ等に依存しているよう?で変更できません。


これに気づいているのなら、もう一歩。
裏技的ですが、Heightを指定する前にフォントサイズを一度小さい値にしてみましょう。
例えば
.FontSize = 2
.Height = 240
.FontSize = 9
これでうまくいくはずです。
面倒くさいですが、こういった回避法しか無さそうです(´・ω・`)
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/07/04 03:04

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/07/04 12:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!