vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

Fortgeschrittene Programmierung
Re: Label hintergrund einfärben 
Autor: mst547
Datum: 28.05.11 19:10

Hallo Tommy!

Dazu musst du im MouseMove-Ereignis des Labels zunächst prüfen, ob die rechte Maustaste gedrückt ist (Button-Parameter bekommst du im Ereignis übergeben) und dann anhand der Mauskoordinaten und der Koordinaten der einzelnen Labels prüfen, über welchem Label sich der Mauszeiger befindet. Abhängig davon musst du dann die Labels zwischen jenem, auf das geklickt wurde und jenem, wo sich der Mauszeiger befindet, einfärben.

Hier einmal ein Grobentwurf. Ich gehe alle Labels durch und prüfe, ob der Mauszeiger auf dem entsprechenden Label ist. Den Index dieses Labels speichere ich in MausIndex. Dann färbe ich alle Labels von Index bis MausIndex grün ein.
Das Ganze gehört sicherlich noch verfeinert, einerseits weil MausIndex ja auch kleiner sein kann als Index und andererseits, weil man mit dem Mauszeiger ja auch wieder zurückfahren kann und dann die "Markierung" bei den Labels wieder entfernen muss.
Außerdem weiß ich nicht, wie deine Labels angeordnet sind, vielleicht müssen die Koordinaten nur in eine Dimension überprüft werden.

Private Sub Label1_MouseMove(Index As Integer, Button As Integer, Shift As _
  Integer, X As Single, Y As Single)
Dim i As Integer, MausIndex As Integer
 
If Button = vbRightButton Then
    'rechte Maustaste ist gedrückt -> prüfen, über welchem Label der 
    ' Mauszeiger ist
    MausIndex = -1
    For i = 0 To Label1.UBound
        With Label1(i)
            If X > .Left And X < .Left + .Width And Y > .Top And Y < .Top _
              + .Height Then
                MausIndex = i
                Exit For
            End If
        End With
    Next
 
    If MausIndex >= 0 Then
        For i = Index To MausIndex
            Label(i).BackColor = vbGreen
        Next
    End If
End If
End Sub
mfg mst547
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Label hintergrund einfärben1.235dj.tommy28.05.11 14:45
Re: Label hintergrund einfärben876mst54728.05.11 19:10

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-2025 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