vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Kreis in Picturebox blinken lassen 
Autor: 00tommy
Datum: 13.02.17 18:53

Hallo,

ich lasse mir in eine Picturebox einen Kreis zeichnen:

Public Class Form1
 
    Private Sub PictureBox1_Paint(ByVal sender As System.Object, ByVal e As _
      System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
        Dim g As Graphics = e.Graphics
 
        g.FillEllipse(Brushes.Black, New Rectangle(10, 10, 100, 100))
    End Sub
 
End Class
Wie kann ich den Kreis blinken lassen ?
Es sollen noch mehr Kreise werden. Die ich alle gleich erzeugen möchte.
Gibt es eine Möglichkeit, alle mit dem gleichen Timer, blinken zu lassen ?

Tschö
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Kreis in Picturebox blinken lassen 
Autor: Manfred X
Datum: 13.02.17 20:36

Hallo!

Vielleicht so was?
Invalidieren kann man übrigens auch Teilflächen einer Zeichenebene.
 
Public Class frmBlink
 
 
    Dim WithEvents picturebox1 As New PictureBox With _
       {.Parent = Me, .Width = 300, .Height = 300}
 
    Dim WithEvents tim As New Timer With _
       {.Interval = 1000, .Enabled = True}
 
 
    Private Sub PictureBox1_Paint(ByVal sender As System.Object, ByVal e As  _
      System.Windows.Forms.PaintEventArgs) Handles picturebox1.Paint
        Dim g As Graphics = e.Graphics
 
        Static isvisible As Boolean = False
        If isvisible Then
            g.FillEllipse(Brushes.Black, New Rectangle(10, 10, 100, 100))
        End If
        isvisible = Not isvisible
    End Sub
 
 
    Private Sub tim_Tick(sender As Object, _
        e As System.EventArgs) Handles tim.Tick
 
        picturebox1.Invalidate()
 
    End Sub
 
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Kreis in Picturebox blinken lassen 
Autor: 00tommy
Datum: 14.02.17 21:06

Hallo,

ich würde gerne die sub

 Private Sub Listview1_SelectedIndexChanged(sender As Object, e As EventArgs) _
   Handles Listview1.SelectedIndexChanged
blinken lassen.
Leider funktioniert

Private Sub tim_Tick(sender As Object, _
        e As System.EventArgs) Handles tim.Tick
 
 
        Listview1_SelectedIndexChanged.Invalidate()
 
    End Sub
hat noch jemand einen Tipp ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Kreis in Picturebox blinken lassen 
Autor: Manfred X
Datum: 14.02.17 21:53

Hallo!

Wenn Du ein Listview-Item selektierst, wird es automatisch
mit den Selection-Colors des Systems eingefärbt.
Wie das aussieht ist u.a. abhängig von der FullRowSelect-Eigenschaft.

Du kannst aber die OwnerDraw-Eigenschaft nutzen und die Items selbst
zeichnen (incl. Farbgebung und Blink-Invalidierung des
Draw(Sub)Item-Eventhandlers).

Welche(s) Item(s) genau soll(en) unter welchen Bedingungen blinken?
(Ist das nicht irritierend? Blinken signalisiert gewöhnlich ein Problem
oder das Ende einer längeren Bearbeitung).
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Kreis in Picturebox blinken lassen 
Autor: 00tommy
Datum: 19.02.17 20:32

Hallo Manfred,

es geht mir nicht um die selektierte Auswahl die blinken soll.
Von der Listview hole ich mir die Koordinaten für die Zeichnung die blinken soll.

Alles was blinken soll liegt in der Private Sub zeichnen()
die funktioniert, und macht was sie machen soll, eben nur nicht blinken. ;(

Mit
Private Sub lv_SelectedIndexChanged(sender As Object, e As EventArgs) Handles _
  lv.SelectedIndexChanged
 
        zeichnen()
 
    End Sub
Rufe ich die neuen Koordinaten für den nächsten kreis auf.

Ich weis jetzt nur noch nicht, wie ich den Ticker aufrufen (einbinden) soll.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Kreis in Picturebox blinken lassen 
Autor: Manfred X
Datum: 19.02.17 22:56

So ganz ist mir nicht klar, was Du erreichen möchtest.
Schau Dir dieses Beispiel-Formular an ....
Public Class frmBlink
 
    Dim WithEvents pb As New PictureBox With _
        {.Parent = Me, .Size = New Size(300, 300)}
 
    Dim WithEvents lbo As New ListBox With _
        {.Parent = Me, .Top = 330, .Width = 300, .Height = 60}
 
    Dim WithEvents tim As New Timer With _
        {.Interval = 300, .Enabled = True}
 
    Dim swap As Boolean
 
 
    Private Sub frmBlink_Load(sender As System.Object, _
                            e As System.EventArgs) Handles MyBase.Load
 
        Me.Size = New Size(320, 440)
 
        'Die Listenindices definieren die Position 
        'der Kreise in der Picturebox pb
        lbo.Items.AddRange _
           ({"100,100", "130, 130", "160, 160", "100, 160"})
 
    End Sub
 
 
    Private Sub tim_Tick(sender As Object, _
        e As System.EventArgs) Handles tim.Tick
 
        swap = Not swap 'Blinkgeber
        pb.Invalidate() 'Zeichnung anfordern
    End Sub
 
 
    Private Sub pb_Paint(sender As Object, _
        e As System.Windows.Forms.PaintEventArgs) Handles pb.Paint
 
        Dim vl() As String, x%, y%
 
        'Nicht-selektierte Kreise zeichnen (grau)
        Using br As New SolidBrush(Color.Gray)
            For i As Integer = 0 To lbo.Items.Count - 1
                If Not i = lbo.SelectedIndex Then
                    vl = lbo.Items(i).ToString.Split(","c)
                    x = CInt(vl(0)) : y = CInt(vl(1))
                    e.Graphics.FillEllipse(br, x, y, 20, 20)
                End If
            Next i
        End Using
 
        If lbo.SelectedIndex > -1 Then
            Dim col As Color
            'aktuell benötigte Blinkfarbe
            If swap Then col = Color.Red Else col = Color.White
            Using br As New SolidBrush(col)
                'Selektierten Kreis blinken lassen 
                vl = lbo.Items(lbo.SelectedIndex).ToString.Split(","c)
                x = CInt(vl(0)) : y = CInt(vl(1))
                e.Graphics.FillEllipse(br, x, y, 20, 20)
            End Using
        End If
    End Sub
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel