Type-o-matic Text Box

This code creates a smart input box. Every time you type something into this text box, the first letters of your string are compared against the members of a hidden list box. The code guesses how your string should be completed and finishes it for you, similar to how the latest versions of Microsoft Excel and Internet Explorer behave.

To use this technique, add a list box to your form and set its Visible property to False. This example fills the list at Form_Load with some likely selections. In a real app, you’d add a new element to the list after each user entry is completed. Add this code to the form containing the text and list boxes:

 Option Explicit#If Win32 Then	Private Const LB_FINDSTRING = &H18F	Private Declare Function SendMessage Lib _		"User32" Alias "SendMessageA" (ByVal _		hWnd As Long, ByVal wMsg As Long, _		ByVal wParam As Long, lParam As Any) _		As Long#Else	Private Const WM_USER = &H400	Private Const LB_FINDSTRING = (WM_USER + 16)	Private Declare Function SendMessage Lib _		"User" (ByVal hWnd As Integer, ByVal _		wMsg As Integer, ByVal wParam As _		Integer, lParam As Any) As Long#End IfPrivate Sub Form_Load()	List1.AddItem "Orange"	List1.AddItem "Banana"	List1.AddItem "Apple"	List1.AddItem "Pear"End SubPrivate Sub Text1_Change()	Dim pos As Long	List1.ListIndex = SendMessage( _		List1.hWnd, LB_FINDSTRING, -1, ByVal _		CStr(Text1.Text))	If List1.ListIndex = -1 Then		pos = Text1.SelStart	Else		pos = Text1.SelStart		Text1.Text = List1		Text1.SelStart = pos		Text1.SelLength = Len(Text1.Text) - pos	End IfEnd SubPrivate Sub Text1_KeyDown(KeyCode As _	Integer, Shift As Integer)	On Error Resume Next	If KeyCode = 8 Then 'Backspace 		If Text1.SelLength <> 0 Then			Text1.Text = Mid$(Text1, 1, _				Text1.SelStart - 1)			KeyCode = 0		End If	ElseIf KeyCode = 46 Then 'Del		If Text1.SelLength <> 0 And _			Text1.SelStart <> 0 Then			Text1.Text = ""			KeyCode = 0		End If	End IfEnd Sub
Share the Post:
Share on facebook
Share on twitter
Share on linkedin


The Latest

homes in the real estate industry

Exploring the Latest Tech Trends Impacting the Real Estate Industry

The real estate industry is changing thanks to the newest technological advancements. These new developments — from blockchain and AI to virtual reality and 3D printing — are poised to change how we buy and sell homes. Real estate brokers, buyers, sellers, wholesale real estate professionals, fix and flippers, and beyond may

man on floor with data

DevX Quick Guide to Data Ingestion

One of the biggest trends of the 21st century is the massive surge in internet usage. With major innovations such as smart technology, social media, and online shopping sites, the internet has become an essential part of everyday life for a large portion of the population. Due to this internet

payment via phone

7 Ways Technology Has Changed Traditional Payments

In today’s digital world, technology has changed how we make payments. From contactless cards to mobile wallets, it’s now easier to pay for goods and services without carrying cash or using a checkbook. This article will look at seven of the most significant ways technology has transformed traditional payment methods.