vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Controls · ComboBox   |   VB-Versionen: VB4, VB5, VB620.07.05
TextBox/ComboBox-Inhalt rückwärts selektieren

Manchmal ist es besser, den Inhalt einer TextBox bzw. ComboBox rückwärts zu selektieren - und zwar dann, wenn der Inhalt größer (länger) ist als das Control selbst.

Autor:   Dieter OtterBewertung:  Views:  12.889 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Bezugnehmend auf den Tipp  AutoComplete in der ComboBox wurde im Forum vor kurzem folgendes Problem geschildert: "Ich habe aus der Tipps & Tricks-Sektion den Tip "AutoComplete für eine Combobox" in mein Programm eingebaut und das funktioniert alles wunderbar. Nur wenn es in der Combobox Einträge gibt, die so lang sind, dass sie nicht komplett in die Textbox der Combobox passen, wird automatisch nach dem Setzen der SELLENGTH-Eigenschaft ans Ende des Textes gescrollt und die Eingabemarke ist ausserhalb des sichtbaren Bereichs.

In diesem Fall wäre es also sinnvoller, den Inhalt der ComboBox nicht von links beginnend bis ans Ende zu selektieren, sondern umgekehrt vom Ende rückwärts bis zur aktuellen Eingabeposition. Leider unterstützt die SelLength-Eigenschaft keine negativen Wertzuweisungen, so dass wir uns etwas anderes einfallen lassen müssen. Man könnte bspw. den Cursor ans Ende des Textes setzen und dann x-Zeichen rückwärts selektieren, indem man die Shift+Pfeil-nach-links Taste x-mal sendet.

Statt:

.SelStart = sPos
.SelLength = Len(.Text) - sPos + 1

setzen wir folgenden Code ein:

.SelStart = Len(.Text)
SendKeys "+{LEFT " & CStr((Len(.Text) - sPos)) & "}"

Leider ruckelt dann die Darstellung bei jedem Tastendruck ein wenig, was man aber wie folgt abstellen kann:

Option Explicit
 
' Benötigte API-Deklaration
Private Declare Function LockWindowUpdate Lib "user32" ( _
  ByVal hwndLock As Long) As Long
With Combo1
  ...
  LockWindowUpdate .hWnd
  .SelStart = Len(.Text)
  SendKeys "+{LEFT " & CStr((Len(.Text) - sPos)) & "}"
  LockWindowUpdate 0&
End With



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.