C# Neuaufbau des Fensters löst dauernd MouseMove aus

JJB

Cogito ergo brumm
Tach !

Ich hab ein Fenster bei welchem ich MouseMove Events abfangen muss um Aktionen auszuführen und ich habe ToolTips auf Buttons und Feldern.

Soweit sollte das funktionieren, nur habe ich auch eine RTB die sich immer wieder neu aufbauen muß (Größe, Position o.ä.). Und jedesmal wenn sich die RTB neu aufbaut wird aus irgendwelchen Gründen ein MouseMoveEvent ausgelöst (egal wo der Focus oder die Maus ist) und es werden so weder die ToolTips angezeigt noch wird die Aktion, die hinter dem MouseMove steckt, zum rechten Moment ausgeführt.

Wie kann ich verhindern, dass bei einem Neuaufbau eines Form Elements ein MouseMoveEvent ausgelöst wird, welches da gar nicht hingehört ?

Muss ich das Event vorher entfernen und nachher wieder hinzufügen ? Ist dann aber doof, wenn sich die RTB in 1 Sekunde 3 Mal ändert und zwischendrin aber auch mal ein MouseEvent abgefangen werden MUSS. Ist ein wenig schlampig oder.

Jemand eine Idee ?
 
Tach'chen JBB!

Klinkt ja mal echt kurios. :D Frage mich was Du da geproggt hast. :confused:
Setz doch erstmal ein Flag in deinem Proggi wenn Du die RTB veränderst
und ignorier den MouseMove-Code,
damit du dem erstmal aus dem Wege gehen kannst.
Ansonsten hab ich keinen Plan was da jetzt das Event auslöst.

MfG, cosmo
 
Um es auf den Punkt zu bringen.
Mein Fenster hat optional einen Newsscroller. Wenn der Text gescrollt wird, wird die Form neu gezeichnet (steht außer Diskussion, da nur so möglich).
Doch wenn eine Form neu gezeichnet wird, scheint der MouseCursor irgendwie auf den Gedanken zu kommen, dass seine Position verändert wurde.
Ist vielleicht auf eine relative Position zur RTB zurückzuführen oder beim Neuzeichnen der Form wird die Maus Position neu initialisiert. Weiß nicht....

Weiß jemand warum dieses Event ausgelöst wurde, oder wie ich hier das Event für den Zeitpunkt der Neuzeichnung deaktiviere ?
 
JJB hat gesagt.:
Um es auf den Punkt zu bringen.
Mein Fenster hat optional einen Newsscroller. Wenn der Text gescrollt wird, wird die Form neu gezeichnet (steht außer Diskussion, da nur so möglich).
Wie jetzt?
Zeichnest das ganze Form wenn nur ein Label oder ähnliches (Newsscroller) aktualisiert wird?
Warum erstellst kein eigenens Component oder erweiterst irgend ein Control?
Dann hättest alles sauber getrennt. :)
JJB hat gesagt.:
Doch wenn eine Form neu gezeichnet wird, scheint der MouseCursor irgendwie auf den Gedanken zu kommen, dass seine Position verändert wurde.
Ist vielleicht auf eine relative Position zur RTB zurückzuführen oder beim Neuzeichnen der Form wird die Maus Position neu initialisiert. Weiß nicht....
Wie gesagt kp.
JJB hat gesagt.:
Weiß jemand [...] wie ich hier das Event für den Zeitpunkt der Neuzeichnung deaktiviere ?
Setz doch erstmal ein Flag in deinem Proggi wenn Du die RTB veränderst
und ignorier den MouseMove-Code,
damit du dem erstmal aus dem Wege gehen kannst.
Heisst einen boleanischen Wert (Flag) auf true setzen solange die RTB neu gezeichent wird
und während desssen im MouseMove Event darauf reagieren und den Code ignorieren.

MfG, cosmo
 
Das ist wie gesagt nicht unbedingt anders zu machen.
Ich habe die RTB um eine interne RTB erweitert. Beim Scrollen wird die innere RTB verschoben, was offenbar dafür sorgt, dass das gesamte Fenster neu gezeichnet wird, oder zumindest der Mauszeiger neu initialisiert wird.

Das MouseEvent verhindert, dass die Tooltips angezeigt werden. Es darf erst gar nicht zu dem Event kommen. Es abzubrechen oder zu leeren reicht nicht, da eine Maus die sich bewegt, den Timer für die Tooltips neu setzt, egal ob sie etwas tut oder nicht.

Wie kriege ich nun die Tooltips wieder ?
 
JJB hat gesagt.:
Ich habe die RTB um eine interne RTB erweitert. Beim Scrollen wird die innere RTB verschoben, was offenbar dafür sorgt, dass das gesamte Fenster neu gezeichnet wird, oder zumindest der Mauszeiger neu initialisiert wird.
Wie?
Du verschiebst ein Control anstatt den Text selber zu zeichen und pixelweise zu verschieben?
Sorry, aber was für eine Verschwendung. :rolleyes:

JJB hat gesagt.:
Das MouseEvent verhindert, dass die Tooltips angezeigt werden. Es darf erst gar nicht zu dem Event kommen. Es abzubrechen oder zu leeren reicht nicht, da eine Maus die sich bewegt, den Timer für die Tooltips neu setzt, egal ob sie etwas tut oder nicht.

Wie kriege ich nun die Tooltips wieder ?
Ich kapier hier echt nicht was Du da veranstaltest.

Warum verändert eine Mausbewegung den Timer der TooTips? :suspekt:

Kann es sein das wenn Du mit der Maus darüber fährst, sich der ToolTip aktiviert
aber gleich danach wieder verschwindet weil Du AnzeigeIntervall des ToolTips veränderst
und er sich daher Reseted, ergo der ToolTip wieder verschwindet?
 
Ich bin die 2. Geige in dem Projekt.
Ich sollte einen Scroller mit Grafikinhalt basteln. Also lade ich die Grafiken und den formatierten Text in eine RTB und schiebe diese Pixelweise umher, da ich kein TopIndent in der RTB finde.

Die ToolTips werden nicht mehr angezeigt, wenn ich die Maus darüber halte. Wenn ich die MouseMoveEvents abfange, entdecke ich, dass dieses laufend erzeugt wird auch wenn ich sie nicht bewege. (Das Ausführen des Events kann ich natürlich abbrechen, jedoch nicht seinen Aufruf selbst verhindern)

Es könnte natürlich sein, dass das ToolTip ständig wieder aufgebaut wird. Dann müßte ich dem ToolTip sagen, "wenn du schon angezeigt wirst, bau dich nicht neu auf".

Trifft das in etwa deine Idee ?
 
JJB hat gesagt.:
Ich sollte einen Scroller mit Grafikinhalt basteln. Also lade ich die Grafiken und den formatierten Text in eine RTB und schiebe diese Pixelweise umher, da ich kein TopIndent in der RTB finde.
Hättest ja auch gleich sagen können.

JJB hat gesagt.:
Die ToolTips werden nicht mehr angezeigt, wenn ich die Maus darüber halte. Wenn ich die MouseMoveEvents abfange, entdecke ich, dass dieses laufend erzeugt wird auch wenn ich sie nicht bewege. (Das Ausführen des Events kann ich natürlich abbrechen, jedoch nicht seinen Aufruf selbst verhindern)

Es könnte natürlich sein, dass das ToolTip ständig wieder aufgebaut wird. Dann müßte ich dem ToolTip sagen, "wenn du schon angezeigt wirst, bau dich nicht neu auf".

Trifft das in etwa deine Idee ?
Ähm, soll jetzt etwa ein ToolTip eines sich bewegenden Controls angezeigt werden?
Ich glaub das ist nicht möglich. Oder hab ich das jetzt falsch verstanden?
Wenn Du ein MouseEvent eines sich bewegenden Controls abzufängst
und Du da mit der Maus drüber bist, wird das Event dann eh immer ausgelöst.
 
Nein... ich bin mit der Maus weder über der RTB noch hat sie ein ToolTip. Das ToolTip ist auf einem Textfeld und einem Button, diese werden aber nicht angezeigt solange, die sich bewegende RTB, MouseEvents erzeugt.

Kann ich das Neu-Zeichnen-Event des ToolTips nicht abfangen und verändern, so daß sich ToolTips nicht neu zeichnen wenn sie schon da sind ? (Falls sie deswegen nicht angezeigt werden)
 
JBB hat gesagt.:
Kann ich das Neu-Zeichnen-Event des ToolTips nicht abfangen und verändern, so daß sich ToolTips nicht neu zeichnen wenn sie schon da sind ? (Falls sie deswegen nicht angezeigt werden)
Nein, nicht dass ich wüsste? :confused:
Wird denn immer noch der Interval der ToolTips verändert?
Wenn ja, dann ist das meines erachtens nach, der Grund für das verschwinden der ToolTips.
 
Zurück