QR코드에 색상 지정 가능
This commit is contained in:
226
Sub/MyControl(OleDb)v2/MyControlOLEDBv2/MyLabel.vb
Normal file
226
Sub/MyControl(OleDb)v2/MyControlOLEDBv2/MyLabel.vb
Normal file
@@ -0,0 +1,226 @@
|
||||
|
||||
Public Class MyLabel
|
||||
Public TextValue As String = "[tindevil@Nate.com]"
|
||||
Public TextFont As New Font("HY견고딕", 30)
|
||||
|
||||
Dim v장평 As Int16 = 100
|
||||
Dim v장높이 As Int16 = 100
|
||||
|
||||
Dim v설명 As String = vbNullString
|
||||
Dim v전경색 As Color = Color.Black
|
||||
Dim v회전 As Int16 = 0
|
||||
|
||||
Private v_공백 As Int16 = 0 '//공백
|
||||
Private V_CB As CheckBox
|
||||
|
||||
Public Repeat As Short = 0 '//반복출력횟수
|
||||
Public RepeatX As Single '//반복출력시 x변위
|
||||
Public RepeatY As Single '//반복출력시 y변위
|
||||
|
||||
Public Pattern As String
|
||||
Public DIV As String
|
||||
|
||||
|
||||
Public Sub New()
|
||||
|
||||
' 이 호출은 Windows Form 디자이너에 필요합니다.
|
||||
InitializeComponent()
|
||||
'Me.BackColor = Color.Transparent
|
||||
' InitializeComponent() 호출 뒤에 초기화 코드를 추가하십시오.
|
||||
|
||||
End Sub
|
||||
|
||||
<System.ComponentModel.Description("글자사이의 공백 수")> _
|
||||
Public Property CheckBox() As CheckBox
|
||||
Get
|
||||
Return V_CB
|
||||
End Get
|
||||
Set(ByVal value As CheckBox)
|
||||
V_CB = value
|
||||
Me.Invalidate()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.ComponentModel.Description("글자사이의 공백 수")> _
|
||||
Public Property 공백() As Int16
|
||||
Get
|
||||
Return v_공백
|
||||
End Get
|
||||
Set(ByVal value As Int16)
|
||||
v_공백 = value
|
||||
Me.Invalidate()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Function 최종문자() As String
|
||||
If v_공백 = 0 Then Return TextValue.Trim
|
||||
Dim z As New System.Text.StringBuilder
|
||||
For Each A As Char In TextValue.ToCharArray
|
||||
z.Append(A.ToString & Space(v_공백))
|
||||
Next
|
||||
Return (z.ToString.Trim())
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 컨트롤의 장평을 설정합니다 기본값=100
|
||||
''' </summary>
|
||||
''' <value></value>
|
||||
''' <returns></returns>
|
||||
''' <remarks></remarks>
|
||||
<DefaultValue(100), Description("컨트롤의 장평을 설정합니다. 기본=100%")> _
|
||||
Public Property 장평() As Int16
|
||||
Get
|
||||
Return v장평
|
||||
End Get
|
||||
Set(ByVal value As Int16)
|
||||
v장평 = value
|
||||
Me.Invalidate()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<DefaultValue(100), Description("컨트롤의 글자너비를 설정합니다. 기본=100%")> _
|
||||
Public Property 회전() As Int16
|
||||
Get
|
||||
Return v회전
|
||||
End Get
|
||||
Set(ByVal value As Int16)
|
||||
v회전 = value
|
||||
Me.Invalidate()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
<DefaultValue(100), Description("컨트롤의 글자너비를 설정합니다. 기본=100%")> _
|
||||
Public Property 장높이() As Int16
|
||||
Get
|
||||
Return v장높이
|
||||
End Get
|
||||
Set(ByVal value As Int16)
|
||||
v장높이 = value
|
||||
Me.Invalidate()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
Public Function GetSize(Optional ByVal NewFont As Font = Nothing) As SizeF
|
||||
If NewFont Is Nothing Then NewFont = TextFont
|
||||
Return TextRenderer.MeasureText(최종문자, NewFont)
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 컨트롤의 설명을 집어넣습니다.
|
||||
''' </summary>
|
||||
''' <value></value>
|
||||
''' <returns></returns>
|
||||
''' <remarks></remarks>
|
||||
<System.ComponentModel.Description("컨트롤의 설명입니다")> _
|
||||
Property 설명() As String
|
||||
Get
|
||||
If v설명 = vbNullString Then Return Me.Name.ToString
|
||||
Return v설명
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
v설명 = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property MyForeColor() As Color
|
||||
Get
|
||||
Return v전경색
|
||||
End Get
|
||||
Set(ByVal value As Color)
|
||||
v전경색 = value
|
||||
Me.Invalidate()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.ComponentModel.Description("표시할 문자를 설정합니다.길이는 1입니다")> _
|
||||
Public Property MyText() As String
|
||||
Get
|
||||
Return TextValue
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
TextValue = value
|
||||
Me.Invalidate()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.ComponentModel.Description("텍스트의 폰트타입을 설정합니다")> _
|
||||
Public Property MyFont() As Font
|
||||
Get
|
||||
Return TextFont
|
||||
End Get
|
||||
Set(ByVal value As Font)
|
||||
TextFont = value
|
||||
Me.Invalidate()
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
Public Function GetImage() As Bitmap
|
||||
Dim Br As New SolidBrush(v전경색)
|
||||
Me.Height = GetSize.Height * (v장높이 / 100)
|
||||
Me.Width = GetSize.Width * (v장평 / 100)
|
||||
Dim Bmp As New Bitmap(Me.Width, Me.Height, Me.CreateGraphics)
|
||||
Dim G As Graphics = Graphics.FromImage(Bmp)
|
||||
|
||||
G.ScaleTransform((v장평 / 100), (v장높이 / 100))
|
||||
G.DrawString(TextValue, TextFont, Br, 0, 0)
|
||||
G.Dispose()
|
||||
Return Bmp
|
||||
End Function
|
||||
|
||||
|
||||
Protected Overrides Sub OnPaint(ByVal pe As System.Windows.Forms.PaintEventArgs)
|
||||
Dim Br As New SolidBrush(v전경색)
|
||||
Dim LastText As String = ""
|
||||
Dim Idx As Integer = 0
|
||||
|
||||
|
||||
Dim Z As New System.Drawing.StringFormat()
|
||||
Z.FormatFlags = StringFormatFlags.MeasureTrailingSpaces
|
||||
|
||||
If v장평 = 100 AndAlso v장높이 = 100 Then '//장평미적용 문자로 처리
|
||||
Me.Width = GetSize.Width
|
||||
Me.Height = GetSize.Height
|
||||
LastText = 최종문자()
|
||||
|
||||
' Dim A As New Font("굴림", 20, FontStyle.Regular, GraphicsUnit.Display, &H1, True)
|
||||
pe.Graphics.DrawString(LastText, TextFont, Br, 0, 0, Z)
|
||||
'pe.Graphics.DrawString(LastText, A, Br, 0, 0)
|
||||
Else
|
||||
Me.Height = GetSize.Height * (v장높이 / 100)
|
||||
Me.Width = GetSize.Width * (v장평 / 100)
|
||||
Dim Bmp As New Bitmap(Me.Width, Me.Height, pe.Graphics)
|
||||
Dim G As Graphics = Graphics.FromImage(Bmp)
|
||||
|
||||
If v회전 <> 0 Then
|
||||
'G.ResetTransform()
|
||||
'G.TranslateTransform(-Me.Width, -Me.Height, Drawing2D.MatrixOrder.Append)
|
||||
'G.RotateTransform(v회전, Drawing2D.MatrixOrder.Append)
|
||||
'G.TranslateTransform(Me.Width, Me.Height, Drawing2D.MatrixOrder.Append)
|
||||
|
||||
G.TranslateTransform(-Me.Width, -Me.Height, Drawing2D.MatrixOrder.Append)
|
||||
G.RotateTransform(v회전, Drawing2D.MatrixOrder.Append)
|
||||
G.TranslateTransform(Me.Width, Me.Height, Drawing2D.MatrixOrder.Append)
|
||||
End If
|
||||
'G.TranslateTransform(Me.Width / 2, Me.Height / 2, Drawing2D.MatrixOrder.Append)
|
||||
G.ScaleTransform((v장평 / 100), (v장높이 / 100))
|
||||
G.DrawString(TextValue, TextFont, Br, 0, 0)
|
||||
G.Dispose()
|
||||
pe.Graphics.DrawImage(Bmp, 0, 0) ', CInt(GetSize.Width * (v장평 / 100)), GetSize.Height)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub RotateAt(ByVal gr As Graphics, ByVal cx As Integer, ByVal cy As Integer, ByVal angle As Single)
|
||||
gr.ResetTransform()
|
||||
gr.TranslateTransform(-cx, -cy, Drawing2D.MatrixOrder.Append)
|
||||
gr.RotateTransform(angle, Drawing2D.MatrixOrder.Append)
|
||||
gr.TranslateTransform(cx, cy, Drawing2D.MatrixOrder.Append)
|
||||
End Sub
|
||||
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user