Mam pole kombi .... chciałbym aby po zmianie wybranej pozycji z listy kursor ustawiał się na samym końcu.
Metoda I: Krzysztofa Naworyty:
Dim boAfterUpdate As Boolean
Private Sub Kombi0_AfterUpdate()
boAfterUpdate = True
End Sub
Private Sub Kombi0_Change() With Me.Kombi0 If boAfterUpdate Then boAfterUpdate = False .SelStart = Len(.SelText) End If End With
End Sub
' dodatkowo: aby skasować końcowy efekt AfterUpdate, po wyjściu i przed ponownym wejściem do pola...
Private Sub Kombi0_Exit(Cancel As Integer) boAfterUpdate = False
End Sub
Metoda II: Wykorzystując zwłokę czasową po zajściu zdarzenia AfterUpdate, by w międzyczasie wykonane zostały pozostałe zdarzenia,
Private Sub Combo0_AfterUpdate()
Me.TimerInterval = 50
End Sub
Private Sub Form_Timer()
Me.TimerInterval = 0
Me.Combo0.SelStart = Len(Me.Combo0.Value)
End Sub
2.11 Kursor myszy - Jak rozpoznać zdarzenia zachodzące nad selektorem rekordów i nagłówkami kolumn w formularzu w widoku Arkusz danych ?
Problem ten poruszył w 2006 roku Krzysztof Naworyta w przykładzie: DatasheetEvents2k.zip. Identyfikacja kursora myszy odbywa się poprzez zapis ikony kursora jako bitmapy na dysku, wyliczenie identyfikatora z wybranych punktów bitmapy i porównanie tego identyfikatora z wzorcem.
W przykładzie demonstrowanym poniżej, identyfikacja kursora myszy (a w zasadzie tylko przypisanie każdemu uchwytowi kursora numeru) odbywa się poprzez programowe przesuwanie wskaźnika myszy nad selektorem rekordów i nagłówkami kolumn i odczyt zmieniającego się uchwytu kursora.
Niestety metoda ta jest wrażliwa na przypadkowy ruch wskaźnika myszy spowodowany przez użytkownika podczas programowego przesuwania wskaźnika w celu odczytania danych o kursorze myszy. W przypadku wystąpienia błędu odczytu danych inicjalizacyjnych kursorów, ponowny odczyt danych dotyczących wszystkich kursów nastąpi w zdarzeniu OnMouseMove.
Jeżeli obszar znad którego odczytywane są dane inicjalizacyjne kursorów jest zakryty (nawet częściowo) przez formularz typy PopUp, to na czas odczytu danych formularz ten jest ukrywany.
Tak naprawdę to cały efekt graficznej wizualizacji (utworzenie 9-ciu bitmap i narysowanie na nich kursorów myszy) jest zupełnie niepotrzebny w aspekcie identyfikacji kursora podczas ruchu myszy nad elementami Arkusza danych. Do identyfikacji potrzebna jest jedynie kolekcja uchwytów kursorów myszy i znajomość identyfikatora uchwytu.