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: VB4,VB5,VB6
Expertise: beginner
Apr 20, 1999

Overwrite mode for textbox controls

By default, textbox controls work in insert mode, where each new character never overwrites existing ones. If you wish to implement overwrite mode you can take advantage of the fact that characters pressed by the user replace the currently selected text, if any.

You need to declare a form-level variable that holds the current mode, and modify the KeyPress event of the text box control. You also need to add some code to the KeyDown event procedure, in order to trap the INS key and pass from insert mode to overwrite mode and vice versa:


' form level variable
Dim overwriteMode As Boolean

Sub Text1_KeyPress (KeyAscii As Integer)
    If overwriteMode And KeyAscii >= 32 And Text1.SelLength = 0 Then
        ' we are in overwrite mode, the user hasn't pressed a
        ' control key and there's no text currently highlighted
        If Mid$(Text1.Text, Text1.SelStart + 1, 1) <> vbCr Then
            ' we are not at the end of the current line of text
            ' select the next character, so that it will be replaced by
            ' key typed by the end user
            Text1.SelLength = 1
        End If
    End If
End Sub

Sub Text1_KeyDown (KeyCode As Integer, Shift As Integer)
    If KeyCode = 45 And Shift = 0 Then
        overwriteMode = Not overwriteMode
    End If
End Sub
Francesco Balena
 
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