Make a Read-Only Text Box Without Graying the Text

Make a Read-Only Text Box Without Graying the Text

There may be situations in which you want to display text that theuser cannot edit, but a label control doesn’t quite fit the bill. Whatyou need is a read-only text box, which is done setting a text box’s Enabledproperty to False. Unfortunately, this also grays the text. An alternativeis to place the text box on a picture box control and then set the picturebox’s Enabled property to False. This technique will also disable the textbox’s scroll bars if it has any. Another approach is to make the text boxread-only by sending a EM_SETREADONLY message to the text box using theAPI function SendMessage as shown here:

 Declare Function SendMessage Lib "User" _ (ByVal hWnd As Integer, ByVal wMsg As Integer, _ ByVal wParam As Integer, lParam As Any) As Long Global Const WM_USER = &H400 Global Const EM_SETREADONLY = (WM_USER + 31) Sub Form_Load () Dim i As Long 'Prevent user from editing text box i = SendMessage(Text1.hWnd, EM_SETREADONLY, _ True, ByVal 0&) End Sub 

This technique allows the user to still select, copy, and scrollthe contents of the text box but not edit it.

See also  5 Strategies for Supercharging Your CRM

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist