Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
160to164
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
160to164
160to164
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

"überscrollen" von Listbox verhindern

"überscrollen" von Listbox verhindern
23.09.2002 16:39:54
Steph@n
Hallo,

ich habe in einer UserForm mehrere Objekte, darunter auch mehrere ListBoxes. Wenn ich jetzt die ListBox expandiere und mit den Pfeiltasten nach unten scrolle, springt er mir aus der ListBox heraus und übernimmt den letzten Wert der ListBox als ListBox.Value. Wie kann ich dass sperren?

Das heißt, ich möchte, dass er beim runterscrollen beim letzten ListBox-Eintrag "hängen bleibt" und die ListBox nicht verlässt!

Hoffe man kann mein Anliegen so einigermaßen verstehen!

Vielen Dank für Eure Hilfe!

Gruss Stephan



3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: "überscrollen" von Listbox verhindern
24.09.2002 05:41:51
Axel
Hallo Stephan,

mit diesem Problem habe ich mich in einem meiner letzten Projekte auch schon einige Zeit beschäftigt. Eine entsprechende Eigenschaft, mit der das Verhalten beeinflusst werden kann, gibt es offensichtlich nicht.

Auch im Internet habe ich keinerlei Infos hierzu gefunden.

Es gibt aber trotzdem Möglichkeiten, das implizite Wechseln des Steuerelementes zu vermeiden. Es betrifft übrigens nicht nur die Combobox sondern auch das Textfeld.

Auffällig ist, dass die Positionierung der Elemente eine entscheidende Rolle spielt. Eine Combobox wird z.B. beim letzten Eintrag und Betätigen der KeyDown-Taste nur dann verlassen, wenn ein weiteres fokussierbares Steuerelement unterhalb angelegt ist, d.h. dessen Top-Position größer oder gleich der Summe von Top + Height der Combobox ist. Gleiches gilt natürlich für das Verlassen der Box nach oben.

Um den Fokus in der Combobox zu belassen, kannst Du folgenden Code im Klassenmodul der Userform verwenden:

Hier werden einfach die KeyUp-Taste am Anfang und die KeyDown-Taste am Ende der Liste abgefangen.

Alternativ kann ein weiteres Dummy-Steuerelement einfach oberhalb bzw. unterhalb der entsprechenden Listbox/Textfeld platziert werden. Bei diesem Element müssen dann zwingend die Eigenschaften Visible auf True und TabStop auf False eingestellt sein. Über die notwendige Positionierung habe ich mich bereits weiter oben geäußert.

Damit dieses Dummy-Element nicht sichtbar ist, können Width + Height auf 0 gestellt werden, das Caption-Feld ist natürlich unnötig und sollte leer bleiben. Prinzipiell kann ein beliebiges Steuerelement als Dummy herhalten, es bietet sich aber die Verwendung einer Textbox an.

Das Dummy-Element ist auf der Userform in der Entwicklungsumgebung schlecht zu lokalisieren. Es kann aber einfach über das Auswahlfenster im oberen Bereich des eingeblendeten Eigenschaft-Fensters selektiert werden.

Gruß
Axel

Anzeige
Danke!
24.09.2002 10:14:23
Steph@n
Hi Axel,

die Idee mit dem Dummy Objekt kann ich leider nicht umsetzen, da ich auf der UserForm stets ober- und unterhalb der betroffenen Objekte noch focusierbare Objekte verwenden muss (logische Eingabereihenfolge von Werten). Aber das Makro, das Du gepostet hast funzt einwandfrei und hilft mir sehr weiter! Vielen Dank!

Gruss Stephan

Re: Danke!
24.09.2002 10:43:10
Axel
Hallo Stephan,

der Einsatz der Dummies kann selbstverständlich auch dann erfolgen, wenn weitere Steuerelemente ober-/unterhalb der Combobox verwendet werden. (Ansonsten wäre das ja gar nicht nötig, da das Phänomen gerade dann auftritt, wenn das betreffende Element nicht das erste oder letzte vertikal angelegte ist.)

Setze die Dummies einfach zwischen die Elemente. Aber unbedingt darauf achten, dass die Position des Dummy eingepasst ist. Er darf weder oben noch unten eines der anderen Steuerelemente schneiden.

Gruß
Axel

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige