| |
VB.NET - Ein- und UmsteigerThreading - PictureBox Events | | | Autor: Sev7eNup | Datum: 22.03.10 16:19 |
| Ich habe eine Picture Box mit einem DragEnter und einem DragDrop Ereignis und die gleiche PictureBox nochmal mit einem MouseEnter Event.
Das Problem ist, dass die Ereignisse beim Drüberfahren mit der Maus kollidieren und somit in den meisten Fällen nur das DragEnter Event aufgerufen wird.
Daher wollte ich die beiden Ereignisse in eigene Threads packen. Das ist zumindest meine Idee, weiß nicht ob das so funktioniert und weiß auch nicht wie man das umsetzen müsste.
Hier der Code:
Private Sub PictureBox1_DragEnter(ByVal sender As Object, ByVal e As _
System.Windows.Forms.DragEventArgs) Handles PictureBox1.DragEnter
DragEnterSub(e)
End Sub
Private Sub PictureBox1_DragDrop(ByVal sender As Object, ByVal e As _
System.Windows.Forms.DragEventArgs) Handles PictureBox1.DragDrop
geticon((CType(e.Data.GetData(DataFormats.FileDrop), Array).GetValue( _
0).ToString), 1, PictureBox1)
DragDropSub(e, 1)
End Sub
Private Sub PictureBox1_mouseEnter(ByVal sender As System.Object, ByVal e _
As System.EventArgs) Handles PictureBox1.MouseEnter
PictureBox1.BorderStyle = BorderStyle.FixedSingle
End Sub | |
Re: Threading - PictureBox Events | | | Autor: Manfred X | Datum: 22.03.10 16:37 |
| Hallo!
Gibt es ein MouseLeave-Ereignis? | |
Re: Threading - PictureBox Events | | | Autor: Sev7eNup | Datum: 22.03.10 16:39 |
| Oh, ja sorry hab ich vergessen... Gibt es natürlich.
Private Sub PictureBox1_mouseLeave(ByVal sender As System.Object, ByVal e _
As System.EventArgs) Handles PictureBox1.MouseLeave
PictureBox1.BorderStyle = BorderStyle.none
End Sub | |
Re: Threading - PictureBox Events | | | Autor: Sev7eNup | Datum: 22.03.10 16:41 |
| Was hat dein "Vergiss es." zu bedeuten ? | |
Re: Threading - PictureBox Events | | | Autor: Manfred X | Datum: 22.03.10 16:45 |
| Hallo!
[Ungetestete Idee]
Du könntest beim Auslösen der Enter/Leave-Ereignisse
eine Kenn-Variable setzen (Dim MousOverPicture as Boolean).
Falls beim DragDrop-Ereignis diese Kennung nicht gesetzt ist,
rufst Du den Entercode explizit auf.
[/ungetestete Idee]
"Vergiss es" bedeutet: Du bist auf dem Holzweg ...
Beitrag wurde zuletzt am 22.03.10 um 16:46:13 editiert. | |
Re: Threading - PictureBox Events | | | Autor: Sev7eNup | Datum: 22.03.10 16:57 |
| Danke für deinen Tipp. Habs jetzt mal versucht umzusetzen, weiß aber nicht ob es so ist wie du es meinst.
Funktionieren tut es so jedenfalls noch nicht.
Variable ist global deklariert.
Private Sub PictureBox1_DragEnter(ByVal sender As Object, ByVal e As _
System.Windows.Forms.DragEventArgs) Handles PictureBox1.DragEnter
DragEnterSub(e)
End Sub
Private Sub PictureBox1_DragDrop(ByVal sender As Object, ByVal e As _
System.Windows.Forms.DragEventArgs) Handles PictureBox1.DragDrop
If MouseOverPicture = False Then
geticon((CType(e.Data.GetData(DataFormats.FileDrop), _
Array).GetValue(0).ToString), 1, PictureBox1)
DragDropSub(e, 1)
Else
End If
End Sub
Private Sub PictureBox1_mouseEnter(ByVal sender As System.Object, ByVal e _
As System.EventArgs) Handles PictureBox1.MouseEnter
MouseOverPicture = True
PictureBox1.BorderStyle = BorderStyle.FixedSingle
End Sub
Private Sub PictureBox1_mouseLeave(ByVal sender As System.Object, ByVal e _
As System.EventArgs) Handles PictureBox1.MouseLeave
MouseOverPicture = False
PictureBox1.BorderStyle = BorderStyle.None
End Sub
Beitrag wurde zuletzt am 22.03.10 um 16:58:04 editiert. | |
Re: Threading - PictureBox Events | | | Autor: Manfred X | Datum: 22.03.10 17:01 |
| Hallo!
In einem Drag-Ereignis abfragen:
If not MousOverPicture then
'Enter-Ereignis nicht ausgelöst
'--> Enter-Ereigniscode ausführen
Picturebox1.Borderstyle=Borderstyle.Fixedsingle
end if | |
Re: Threading - PictureBox Events | | | Autor: Sev7eNup | Datum: 22.03.10 17:12 |
| Vielen Dank für deine Hilfe. Genauso funktionierts. Leicht als angenommen | |
| 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 |
|
|
Neu! sevPopUp 2.0
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
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
|
|