initial commit
This commit is contained in:
		
							
								
								
									
										160
									
								
								ArinWarev1/UserControls/YkCtl.vb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										160
									
								
								ArinWarev1/UserControls/YkCtl.vb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,160 @@ | ||||
| Public Class YkCtl | ||||
|     Structure SM | ||||
|         Private vStyle As Drawing2D.HatchStyle | ||||
|         Private vwidth As Single, vHeight As Single | ||||
|         Private vFColor As Color | ||||
|         Private vBColor As Color | ||||
|  | ||||
|         Property Style() As Drawing2D.HatchStyle | ||||
|             Get | ||||
|                 Return Me.vStyle | ||||
|             End Get | ||||
|             Set(ByVal value As Drawing2D.HatchStyle) | ||||
|                 Me.vStyle = value | ||||
|             End Set | ||||
|         End Property | ||||
|         Property Width() As Single | ||||
|             Get | ||||
|                 Return Me.vwidth | ||||
|             End Get | ||||
|             Set(ByVal value As Single) | ||||
|                 Me.vwidth = value | ||||
|             End Set | ||||
|         End Property | ||||
|         Property Height() As Single | ||||
|             Get | ||||
|                 Return Me.vHeight | ||||
|             End Get | ||||
|             Set(ByVal value As Single) | ||||
|                 Me.vHeight = value | ||||
|             End Set | ||||
|         End Property | ||||
|         Property FColor() As Color | ||||
|             Get | ||||
|                 Return Me.vFColor | ||||
|             End Get | ||||
|             Set(ByVal value As Color) | ||||
|                 Me.vFColor = value | ||||
|             End Set | ||||
|         End Property | ||||
|         Property BColor() As Color | ||||
|             Get | ||||
|                 Return Me.vBColor | ||||
|             End Get | ||||
|             Set(ByVal value As Color) | ||||
|                 Me.vBColor = value | ||||
|             End Set | ||||
|         End Property | ||||
|     End Structure | ||||
|  | ||||
|     Dim vMFilltype(0) As SM | ||||
|     Dim vVertical As Boolean = True | ||||
|     Dim vMaxWidth As Single = Me.Width  '//총너비 | ||||
|  | ||||
|     Property MaxSize() As Single | ||||
|         Get | ||||
|             Return (vMaxWidth) | ||||
|         End Get | ||||
|         Set(ByVal value As Single) | ||||
|             Me.vMaxWidth = value | ||||
|             Me.Refresh() | ||||
|         End Set | ||||
|     End Property | ||||
|  | ||||
|     Property Vertical() As Boolean  '//그림이 세로형태? | ||||
|         Get | ||||
|             Return (vVertical) | ||||
|         End Get | ||||
|         Set(ByVal value As Boolean) | ||||
|             Me.vVertical = value | ||||
|             Me.Refresh() | ||||
|             ' MsgBox(value) | ||||
|  | ||||
|         End Set | ||||
|     End Property | ||||
|  | ||||
|     Property M1FillType() As SM() | ||||
|         Get | ||||
|             Return (Me.vMFilltype) | ||||
|         End Get | ||||
|         Set(ByVal value As SM()) | ||||
|             Me.vMFilltype = value | ||||
|             Me.Refresh() | ||||
|             '  MsgBox("sdf") | ||||
|         End Set | ||||
|     End Property | ||||
|  | ||||
|     Private Sub UserControl1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint | ||||
|         If Me.vMFilltype Is Nothing OrElse Me.MaxSize <= 0 Then Return | ||||
|         Dim G As Graphics = e.Graphics | ||||
|  | ||||
|         Dim Rect As Rectangle | ||||
|         Dim W As Single | ||||
|         ' If Me.MaxWidth <> 0 Then | ||||
|         For i As Integer = 0 To Me.M1FillType.GetUpperBound(0)  '//갯수만큼 돈다 | ||||
|             '//해당 사각형의 Rectangle 을 생성 | ||||
|             If i = 0 Then | ||||
|                 If Me.Vertical Then | ||||
|                     W = Me.Width / Me.MaxSize * Me.M1FillType(i).Width | ||||
|                     Rect = New Rectangle(0, 5, W, Me.Height - 10) | ||||
|                 Else | ||||
|                     W = Me.Height / Me.MaxSize * Me.M1FillType(i).Width | ||||
|                     Rect = New Rectangle(5, 0, Me.Width - 10, W) | ||||
|                 End If | ||||
|             Else | ||||
|                 If Me.Vertical Then | ||||
|                     W = Me.Width / Me.MaxSize * Me.M1FillType(i).Width | ||||
|                     Rect = New Rectangle(GetWidth(i), 5, W, Me.Height - 10) | ||||
|                 Else | ||||
|                     W = Me.Height / Me.MaxSize * Me.M1FillType(i).Width | ||||
|                     Rect = New Rectangle(5, GetWidth(i), Me.Width - 10, W) | ||||
|                 End If | ||||
|  | ||||
|             End If | ||||
|  | ||||
|             Try | ||||
|                 Dim B As New System.Drawing.Drawing2D.HatchBrush(Me.M1FillType(i).Style, Me.M1FillType(i).FColor, Me.M1FillType(i).BColor) | ||||
|                 G.FillRectangle(B, Rect) | ||||
|             Catch ex As Exception | ||||
|  | ||||
|             End Try | ||||
|         Next | ||||
|  | ||||
|         For i As Integer = 0 To Me.M1FillType.GetUpperBound(0)  '//갯수만큼 돈다 | ||||
|             If Vertical Then | ||||
|                 If i = 0 Then | ||||
|                     W = Me.Width / Me.MaxSize * Me.M1FillType(i).Width | ||||
|                     Rect = New Rectangle(0, 5, W, Me.Height - 10) | ||||
|                 Else | ||||
|                     W = Me.Width / Me.MaxSize * Me.M1FillType(i).Width | ||||
|                     Rect = New Rectangle(GetWidth(i), 5, W, Me.Height - 10) | ||||
|                 End If | ||||
|                 If i <> 0 Then ' AndAlso i <> Me.M1FillType.GetUpperBound(0) Then | ||||
|                     G.DrawLine(New Pen(Color.Black), Rect.X, 5, Rect.X, Me.Height - 5) | ||||
|                 End If | ||||
|             Else | ||||
|                 If i = 0 Then | ||||
|                     W = Me.Height / Me.MaxSize * Me.M1FillType(i).Width | ||||
|                     Rect = New Rectangle(5, 0, Me.Width - 10, W) | ||||
|                 Else | ||||
|                     W = Me.Height / Me.MaxSize * Me.M1FillType(i).Width | ||||
|                     Rect = New Rectangle(5, GetWidth(i), Me.Width - 10, W) | ||||
|                 End If | ||||
|                 If i <> 0 Then 'AndAlso i <> Me.M1FillType.GetUpperBound(0) Then | ||||
|                     G.DrawLine(New Pen(Color.Black), 5, Rect.Y, Me.Width - 5, Rect.Y) | ||||
|                 End If | ||||
|             End If | ||||
|         Next | ||||
|         G.DrawRectangle(New Pen(Color.Black), New Rectangle(0, 0, Me.Width - 2, Me.Height - 2)) | ||||
|         G.Dispose() | ||||
|     End Sub | ||||
|  | ||||
|     Private Function GetWidth(ByVal idx As Integer) As Single | ||||
|         Dim Retval As Single = 0 | ||||
|         For i As Integer = 0 To idx - 1 | ||||
|  | ||||
|             Retval += IIf(Me.Vertical = True, Me.Width, Me.Height) / Me.MaxSize * Me.M1FillType(i).Width | ||||
|         Next | ||||
|         Return Retval | ||||
|     End Function | ||||
| End Class | ||||
		Reference in New Issue
	
	Block a user
	 Chikyun
					Chikyun