Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Visual Basic
Expertise: Beginner
Oct 24, 2001

Lock Controls, Don't Disable Them


You should lock controls (that have the .locked property) rather than setting .enabled = false.

Why? Grey text in a disabled field is less readable. Also, blank fields give no indication that they are disabled, since there is no text to make gray. Disabling a control also disables the mouseover and tooltip properties, which may be useful to have at all times. If you wish to permit the user to select and copy text (but not write) from a field, disabling it prevents this usage.

Preferred method is to lock controls which have the .locked properties and change the background color to a light gray or light pastel color. Leave the foreground color black (this is a visual indication that the field is locked and not editable, but is still quite readable). This prevents user frustration from trying to tab to or click on empty fields and finding they are disabled.

Try using this routine:
 
Public Sub LockControl(cc As Control, LockedFlag As 
Boolean)
    'locks given control (changes .locked, .tabstop, 
.backcolor)
    Const kLockedBackcolor = &HC0C0C0
    Const kUnlockedBackcolor = &HFFFFFF
    On Error GoTo ErrTrap
    If LockedFlag Then
        cc.Locked = True
        cc.TabStop = False
        cc.BackColor = kLockedBackcolor
    Else
        cc.Locked = False
        cc.TabStop = True
        cc.BackColor = kUnlockedBackcolor
    End If
    Exit Sub
    Resume 'debug only
ErrTrap:
    If Err = 380 Then Resume Next   'Invalid property 
value, some controls don't have property
    MsgBox Err & " " & Error & " in lockcontrol "

End Sub
Patrick Marshall
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date