Hoi lui,
Ik ben bezig (op mijn werk) om een kleine user controll in VB.net te maken.
Deze control bestaat uit twee labels die met behulp van mousemove en mousedown events over een soort tijdslijn verschoven kunnen worden (net als een scrollbalk).
De twee labels kunnen niet over en voorbij elkaar geschoven worden en bestaan als harde grens.
links en rechts van de labels zijn twee randen, zodra een van de labels op die plek komt dan gaat het venster scrollen.
Nu is er iets geks aan de hand. Zodra ik de rechter rand van het scherm bereik zou ik hier regelmatig events moeten vangen (of juist niet?)
Deze Mousemove event komt maar een keer voor
Maar zodra ik de volgende code gebruik, word de event eindeloos herhaald
Door dus een knop te verplaatsen creeer ik een mousemove event (oid)
Iemand een idee hoe ik dit netter kan oplossen, want dit vind ik nog al een rare manier om mijn resultaat te bereiken. Dus ipv button1.left -1 een soort refresh methode.
@questa -> ik vind het probleem dat ik nu dus een knop van links naar recht over het scherm laat vliegen om een mousemove event te triggeren. Dit zou beter moeten kunnen.
Ik ben bezig (op mijn werk) om een kleine user controll in VB.net te maken.
Deze control bestaat uit twee labels die met behulp van mousemove en mousedown events over een soort tijdslijn verschoven kunnen worden (net als een scrollbalk).
De twee labels kunnen niet over en voorbij elkaar geschoven worden en bestaan als harde grens.
links en rechts van de labels zijn twee randen, zodra een van de labels op die plek komt dan gaat het venster scrollen.
Nu is er iets geks aan de hand. Zodra ik de rechter rand van het scherm bereik zou ik hier regelmatig events moeten vangen (of juist niet?)
code:
1
2
3
4
5
6
7
8
9
| Private Sub check3(..) Handles label.MouseMove
'...knip....
If ((label.Left + label.Width) >= gmax) Then
moveRight(verplaatsing)
Try
System.Threading.Thread.Sleep(50) ' 10 Miliseconds
Catch objTAE As System.Threading.ThreadAbortException
End Try
End If |
Deze Mousemove event komt maar een keer voor
Maar zodra ik de volgende code gebruik, word de event eindeloos herhaald
code:
1
2
3
4
5
6
7
8
9
10
11
12
| Private Sub check3(..) Handles label.MouseMove
'...knip....
If ((label.Left + label.Width) >= gmax) Then
moveRight(verplaatsing)
Try
System.Threading.Thread.Sleep(50) ' 10 Miliseconds
Catch objTAE As System.Threading.ThreadAbortException
End Try
Button1.Left = Button1.Left - 1
If (Button1.Left < gmin) Then
Button1.Left = gmin
End If |
Door dus een knop te verplaatsen creeer ik een mousemove event (oid)
Iemand een idee hoe ik dit netter kan oplossen, want dit vind ik nog al een rare manier om mijn resultaat te bereiken. Dus ipv button1.left -1 een soort refresh methode.
@questa -> ik vind het probleem dat ik nu dus een knop van links naar recht over het scherm laat vliegen om een mousemove event te triggeren. Dit zou beter moeten kunnen.
[ Voor 9% gewijzigd door barfieldmv op 26-04-2005 17:04 ]