You need to get rid of that Me.Refresh as well.
Your drawing on the groupbox so at most it should be GroupBox1.Refresh.
But you need to only repaint the area you are drawing.
Set up a global rectangle. And then call GroupBox1.Invalidate(global rectangle).
That will fix all most all your flickering alone.
Right now your redrawing the entire form just to draw a 100x100 circle.
Heres an example
'a global rectangle. Set your x, y, and size here.
Private ClockRectangle As New Rectangle(0, 0, 100, 100)
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
Me.sweepangle += 1
If Me.sweepangle = 360 Then
Me.Timer1.Stop()
End If
'Only redraw the rectangle. Not the entire form.
GroupBox1.Invalidate(ClockRectangle)
End Sub
Public Sub GroupBox1_Paint1(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles GroupBox1.Paint
Dim mypen As Pen
mypen = New Pen(System.Drawing.Color.Black, 2)
'Change the smoothing mode so your circle looks better.
e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
e.Graphics.DrawEllipse(mypen, ClockRectangle)
Select Case sweepangle
Case 0 To 90
e.Graphics.FillPie(Brushes.Red, ClockRectangle, -90, Me.sweepangle)
Case 91 To 180
e.Graphics.FillPie(Brushes.Red, ClockRectangle, -90, 90)
e.Graphics.FillPie(Brushes.Orange, ClockRectangle, 0, Me.sweepangle - 90)
Case 181 To 270
e.Graphics.FillPie(Brushes.Red, ClockRectangle, -90, 90)
e.Graphics.FillPie(Brushes.Orange, ClockRectangle, 0, 90)
e.Graphics.FillPie(Brushes.Yellow, ClockRectangle, 90, Me.sweepangle - 180)
Case 271 To 360
e.Graphics.FillPie(Brushes.Red, ClockRectangle, -90, 90)
e.Graphics.FillPie(Brushes.Orange, ClockRectangle, 0, 90)
e.Graphics.FillPie(Brushes.Yellow, ClockRectangle, 90, 90)
e.Graphics.FillPie(Brushes.Green, ClockRectangle, 180, Me.sweepangle - 270)
End Select
'Don't forget to dispose of your pens and brushes.
mypen.Dispose()
End Sub