- PR -

Labelテキストの改行の幅を調整したい

1
投稿者投稿内容
chelsea
常連さん
会議室デビュー日: 2007/12/19
投稿数: 48
投稿日時: 2008-04-16 23:00
VB2005です。
フォームをロードしたとき、Label1のテキストを次の様にしています。
コード:
        Label1.Text = _
        "test1" & vbCrLf & _
        "test2" & vbCrLf & _
        "test3"


上記でLabel1のテキストが改行されますが
この改行された幅をピクセル単位で調整したいと思っています。

Labelの数が多いので、一つのLabelで細かく微調整ができれば助かるのですが
そのような事は可能なのでしょうか?
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2008-04-17 01:38
引用:

chelseaさんの書き込み (2008-04-16 23:00) より:
Labelの数が多いので、一つのLabelで細かく微調整ができれば助かるのですが
そのような事は可能なのでしょうか?


Labelで実現するにはオーナドローが必要になるはずです。行間の調整など見た目を細かく制御する必要があるなら、RichTextBoxかWebBrowserを使うことをお勧めします。
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
chelsea
常連さん
会議室デビュー日: 2007/12/19
投稿数: 48
投稿日時: 2008-04-18 09:44
遅くなりましたが甕星さんありがとうございます。

RichTextBoxを使ってみましたが、これは背景色を透明にすることができないのですね。
Formの外観にBackGroundImageを使用しているので、Labelのように背景色を透明にできる方が良いです。
書き忘れていたので申し訳ありません。

ひとまずオーナードローについてとRichTextBoxの背景色を透明にする方法を(あれば)調べてみます。

[ メッセージ編集済み 編集者: chelsea 編集日時 2008-04-18 09:46 ]
chelsea
常連さん
会議室デビュー日: 2007/12/19
投稿数: 48
投稿日時: 2008-04-18 14:46
自己レスです。

PictureBox内に文字を描画することでひとまず解決しました。
PictureBox1のBackColorはTransparentです。
コード:

Private Sub PictureBox1_Paint(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.PaintEventArgs) _
Handles PictureBox1.Paint

Dim fnt As New Font("MS 明朝", 12)

Dim rect1 As New RectangleF(0, 10, 100, 30)
Dim rect2 As New RectangleF(0, 35, 100, 30)
Dim rect3 As New RectangleF(0, 60, 100, 30)

e.Graphics.FillRectangle(Brushes.Transparent, rect1)
e.Graphics.FillRectangle(Brushes.Transparent, rect2)
e.Graphics.FillRectangle(Brushes.Transparent, rect3)

e.Graphics.DrawString("test1", fnt, Brushes.Black, rect1)
e.Graphics.DrawString("test2", fnt, Brushes.Black, rect2)
e.Graphics.DrawString("test3", fnt, Brushes.Black, rect3)

End Sub


文字を表示する際の座標なども RectangleF で指定できるため
これで解決と言えそうです。

[ メッセージ編集済み 編集者: chelsea 編集日時 2008-04-18 14:50 ]
1

スキルアップ/キャリアアップ(JOB@IT)