[VB6]Mein VB ist zu schnell

09/09/2010 - 10:57 von W. Wolf | Report spam
Hallo,

habe folgendes Problem:
auf einer Form befindet sich ein TabStrip
und darauf ein Grid. Per Doppelklick auf
eine Grid-Zeile wird ein Tab hinzugefügt,
darauf befindet sich ein TreeView. Normal
sollte im TreeView der erste Node selektiert
sein (wird nach dem Befüllen per Code
selektiert). Allerdings passiert auf schnellen
Rechnern folgendes: wenn sich unter dem Mauszeiger
ein Node befindet, dann wird dieser selektiert,
so als ob hier ein Klick auf den Node stattfinden
würde.

Dieses Verhalten habe ich nicht auf allen
Rechnern, auf meinem "langsamen" Entwicklungsrechner
kann ich das nicht nachvollziehen. Irgendwie
schafft es die Nachrichtenschlange von XP hier
einen Klick (oder was auch immer) an mein
TreeView zu senden.

Folgendes habe ich bisher unternommen:
Sleep 100 gleich nach dem Doppelklick
verbessert die Situation, beseitigt sie
aber nicht zu 100%. Jetzt könnte ich die ms
im Sleep erhöhen, was aber das Programm irgendwann
tràger reagieren làßt. Ist auch nicht gerade schön,
vor allem nicht auf langsamen Rechnern. Ein DoEvents
zwischen Doppelklick und dem Befüllen des TreeViews
bringt nichts.

Hàtte jemand eine weitere Idee?

Gruß
W. Wolf
 

Lesen sie die antworten

#1 Armin Zingler
09/09/2010 - 12:29 | Warnen spam
Am 09.09.2010 10:57, schrieb W. Wolf:
Hallo,

habe folgendes Problem:
auf einer Form befindet sich ein TabStrip
und darauf ein Grid. Per Doppelklick auf
eine Grid-Zeile wird ein Tab hinzugefügt,
darauf befindet sich ein TreeView. Normal
sollte im TreeView der erste Node selektiert
sein (wird nach dem Befüllen per Code
selektiert). Allerdings passiert auf schnellen
Rechnern folgendes: wenn sich unter dem Mauszeiger
ein Node befindet, dann wird dieser selektiert,
so als ob hier ein Klick auf den Node stattfinden
würde.

Dieses Verhalten habe ich nicht auf allen
Rechnern, auf meinem "langsamen" Entwicklungsrechner
kann ich das nicht nachvollziehen. Irgendwie
schafft es die Nachrichtenschlange von XP hier
einen Klick (oder was auch immer) an mein
TreeView zu senden.

Folgendes habe ich bisher unternommen:
Sleep 100 gleich nach dem Doppelklick
verbessert die Situation, beseitigt sie
aber nicht zu 100%. Jetzt könnte ich die ms
im Sleep erhöhen, was aber das Programm irgendwann
tràger reagieren làßt. Ist auch nicht gerade schön,
vor allem nicht auf langsamen Rechnern. Ein DoEvents
zwischen Doppelklick und dem Befüllen des TreeViews
bringt nichts.

Hàtte jemand eine weitere Idee?



Setze einen Haltepunkt auf das NodeSelected-Ereignis (oder
wie auch immer es heißt) und untersuche beim Eintreten
den Callstack, um die Ursache zu finden.

Evtl hat auch die Maus nur nen Schaden? Hatte ich zuletzt
nàmlich auch. Also nicht den Schaden aber die defekte Maus. ;)
Da waren manche Klicks plötzlich zwei Klicks.

Armin

Ähnliche fragen