FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

文字列をセンタリングして描画する方法 その2

StringFormat を使うより、こちらの方が読みやすく書けて好きだ。

Imports System.Drawing.Drawing2D
Public Class Form1
  Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
    Dim rcClient As New Rectangle(0, 0, Me.ClientSize.Width, Me.ClientSize.Height)
    Dim nPoint As Integer = (rcClient.Height / 4) * 72 / e.Graphics.DpiY
    If nPoint <= 0 Then
      Exit Sub
    End If
    Const strText As String = "真ん中"
    Using fnt As New Font("MS UI Gothic", nPoint)
    Using br As New System.Drawing.SolidBrush(Color.Black)
      Dim sizeText As SizeF = e.Graphics.MeasureString(strText, fnt)
      Dim ptText As New PointF((rcClient.Width - sizeText.Width) / 2, (rcClient.Height - sizeText.Height) / 2)
      e.Graphics.DrawString(strText, fnt, br, ptText.X, ptText.Y)
    End Using
    End Using
  End Sub
  Private Sub Form1_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize
    Invalidate()
  End Sub
End Class


実行結果はその1と同じ。
テキストを画面中央に描画
スポンサーサイト
コメント
コメントの投稿
管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。