Ein Killerproblem, das ich in Excel-UIs habe, solange ich mich erinnern kann, ist das Scrollen in Listboxen.
Wenn Sie mehr Elemente in einer Listbox haben, als angezeigt werden können, wird eine Bildlaufleiste eingeblendet. Wenn Sie die Leiste ganz nach unten scrollen und dann loslassen, "springt" die Leiste unter bestimmten Umständen eine Stufe nach oben, so dass Sie das letzte Element in der Liste nicht mehr sehen können. Dies wird hier veranschaulicht:
Es gibt viele Forenbeiträge zu diesem Problem, und die Lösung lautete immer: "Setzen Sie die Eigenschaft "Integrale Höhe" auf "false", und setzen Sie sie dann wieder auf "true". Was dies tut, ist leicht die Größe der Listbox, so dass es die Höhe auf die Höhe einer einzelnen Zeile gerundet ist, und dann keine Elemente ausgeblendet bleiben.
With lstbox
.IntegralHeight = False
.Height = myHeight
.IntegralHeight = True
End With
Es gibt jedoch bestimmte Fälle, in denen dies nicht funktioniert. Wenn Sie sind:
- Programmgesteuertes Einstellen der Höhe der Listbox
- NO mit einfacher Listbox-Auswahl (fmMultiSelectSingle)
Dann einfach Einstellung integraler Höhe auf false und dann true nach oder zwischen Änderungen an der Höhe wird eine Anpassung an die Höhe der Listbox zu machen, aber wenn Sie gehen, um nach unten zu scrollen, wird das Problem bleiben - das letzte Element nicht gesehen werden kann.
Der Schlüssel zu dieser frustrierenden Frage ist, dass, während alle anderen im Internet bestätigen, dass die "integralHeight"-Lösung für sie funktioniert, diese sehr speziellen Fälle frustriert sind und sich fragen, warum es bei ihnen nicht funktioniert. Wie bekommen sie also ihr Problem in den Griff?