자료실

부자는 돈을 써서 시간을 아끼지만 가난한 사람은 시간을 써서 돈을 아낀다

vb.net

IT HUB를 찾아주셔서 감사합니다.

기타 [vb.net] 문자 회전해서 그리기(drawstring rotate text)

페이지 정보

profile_image
작성자 하나를하더라도최선을
댓글 0건 조회 11,350회 작성일 19-08-13 14:04

본문

d6ce8667faeebf6f79d58a10832186f5_1565672734_424.png


Imports System.Drawing.Drawing2D
Public Class Form1
    Dim Label1 As myLabel
    Dim Label2 As myLabel
    Dim Label3 As myLabel
    Dim myLabels As New List(Of myLabel)
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Label1 = New myLabel("Label1"New Point(5050))
        myLabels.Add(Label1)
        Label2 = New myLabel("Label2"New Point(100100), 45)
        myLabels.Add(Label2)
        Label3 = New myLabel("Label3"New Point(100100), -45New Font("Arial"18), Color.Blue)
        myLabels.Add(Label3)
    End Sub
    Private Sub Form1_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
        For Each Lbl As myLabel In myLabels
            Lbl.Draw(e.Graphics)
        Next
    End Sub
End Class

Public Class myLabel
    Public Property Text As String
    Public Property Location As Point
    Public Property Angle As Integer
    Public Property Font As Font
    Public Property ForeColour As Color
    Public Sub New(Text As String, Location As Point)
        Me.New(Text, Location, 0New Font("Arial"10), Color.Black)
    End Sub
    Public Sub New(Text As String, Location As Point, Angle As Integer)
        Me.New(Text, Location, Angle, New Font("Arial"10), Color.Black)
    End Sub
    Public Sub New(Text As String, Location As Point, Angle As Integer, Font As Font)
        Me.New(Text, Location, Angle, Font, Color.Black)
    End Sub
    Public Sub New(Text As String, Location As Point, Angle As Integer, Font As Font, ForeColour As Color)
        Me.Text = Text
        Me.Location = Location
        Me.Angle = Angle
        Me.Font = Font
        Me.ForeColour = ForeColour
    End Sub
    Public Sub Draw(g As Graphics)
        Dim State As GraphicsState = g.Save
        g.TranslateTransform(Location.X, Location.Y)
        g.RotateTransform(Angle)
        Using Brsh As New SolidBrush(ForeColour)
            g.DrawString(Text, Font, Brsh, New Point(00))
        End Using
        g.Restore(State)
    End Sub
End Class

댓글목록

등록된 댓글이 없습니다.