Majestic_1987
Level-1
- Beiträge
- 270
- Reaktionspunkte
- 22
-> Hier kostenlos registrieren
Hallo Leute, nach einigem suchen habe ich folgenden code gefunden, welcher so nun einen zeiger malt, welcher sich im Kreis dreht. Ich denke ein paar Grenzen werde ich da auch noch hinbekommen. ABER wie mache ich daraus jetzt ein Steuerelement, dass ich mit Werten versorgen kann und vor allem:
Wie kann ich dafür sorgen, dass das malen des Zeigers nicht mit dem Laden des Forms einhergeht? Habs schon versucht indem ich das OnPaint-Ding durch nen eigenen Prozedurnamen ersetzt und Private gemacht hab und ihm dann nen Handle vom Button gegeben hab..das ging aber nicht weil er dann meckert, der übergebene Parameter entspräche nicht dem System.Windows.Forms.PaintEventArgs. Vielleicht kann mir wer helfen, fange grad mit VB an...
Wie kann ich dafür sorgen, dass das malen des Zeigers nicht mit dem Laden des Forms einhergeht? Habs schon versucht indem ich das OnPaint-Ding durch nen eigenen Prozedurnamen ersetzt und Private gemacht hab und ihm dann nen Handle vom Button gegeben hab..das ging aber nicht weil er dann meckert, der übergebene Parameter entspräche nicht dem System.Windows.Forms.PaintEventArgs. Vielleicht kann mir wer helfen, fange grad mit VB an...
Code:
Public Class frmZeiger
Public MiddlePoint As New PointF(150, 150)
Public MainRadius As Integer = 100
Public Drehwinkel As Decimal = 0
Public Value As Single = 0
Private Direction As Boolean
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
With e.Graphics
.SmoothingMode = Drawing.Drawing2D.SmoothingMode.HighQuality
Dim PenBlack As New Pen(Color.Black, 4)
Dim NeedleEnd As New PointF(MiddlePoint.X - MainRadius * Math.Sin(Drehwinkel), MiddlePoint.Y - MainRadius * Math.Cos(Drehwinkel))
.DrawLine(PenBlack, MiddlePoint, NeedleEnd)
End With
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If Value >= 0 Then
Direction = True
ElseIf Value < 0 Then
Direction = False
End If
If Direction = True Then
Value += 0.5
ElseIf Direction = False Then
Value -= 0.5
End If
Drehwinkel = (2 * Math.PI) / 1100 * Value
Invalidate()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Enabled = True
End Sub
End Class
Zuletzt bearbeitet: