drawing a custom UserControl class of mine... not workin
Hey first-time poster here,
I've gotten into VB pretty smoothly so far, being able to figure out all of the bumps with me myself and Google... until this.
I'm making a custom class that mocks the System.Drawing.Rectangle class because the Rectangle class doesn't have a name property. I need a name property because I am adding all of my rectangles to a collection and I need a little more info stored than just their locale and size. So I changed the _onPaint event but nothing is working out when I run the program, here it is, please take a look and get back to me. Thanks! :) :) :) 8=D
Public Class Rectanglar : Inherits UserControl
Public BackgroundColor As Color = Color.Blue
Public Sub New(ByVal name As String, ByVal XY As Point, ByVal Widthy As Integer, ByVal Heighty As Integer)
Me.Location = XY
Me.Width = Widthy
Me.Height = Heighty
Me.UpdateBounds()
Dim graphics As Graphics = Me.CreateGraphics
Dim pen As Pen = New Pen(Color.Green)
graphics.DrawLine(pen, 0, 0, Me.Size.Width, Me.Size.Height)
End Sub
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
Dim graphics As Graphics = e.Graphics
Dim penWidth As Integer = 4
Dim pen As Pen = New Pen(Color.Black, 4)
Dim fontHeight As Integer = 10
Dim font As Font = New Font("Arial", fontHeight)
Dim brush As SolidBrush = New SolidBrush(BackgroundColor)
graphics.FillEllipse(brush, 0, 0, Width, Height)
Dim textBrush As SolidBrush = New SolidBrush(Color.Black)
graphics.DrawEllipse(pen, CInt(penWidth / 2), CInt(penWidth / 2), Width - penWidth, Height - penWidth)
graphics.DrawString(Text, font, textBrush, penWidth, Height / 2 - fontHeight)
End Sub
End Class
'BUT instantiating that preceding code just didn't get the job done of drawing it for me.
'SO I supplemented the preceding code with the following to get it drawn.... which doens't work either. I've tried both separately.
Private Sub lblTEST_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblTEST.Click
Dim blah As Rectanglar = New Rectanglar("blah", New Point(50, 50), 500, 500)
blah.Update()
'the next stuff is the alternate way i tried to get SOMETHING drawn.
Dim graphics As Graphics = blah.CreateGraphics
Dim pen As Pen = New Pen(Color.Green)
graphics.DrawLine(pen, 0, 0, blah.Size.Width, blah.Size.Height)
So whatama doin wrong?