Previous | Index | Next 

[PRB] Selecting the contents of a TextBox when the control gets the input focus doesn’t work in VB.NET

Data entry forms in many VB6 business applications automatically select the contents of a TextBox or ComboBox control when the control gets the input focus, by means of code such as this:

        Private Sub txtName_GotFocus()
            txtName.SelStart = 0
            txtName.SelLength = Len(txtName.Text)
        End Sub

This code translates correctly to VB.NET and works correctly too, but only when the end user moves the input focus to the target control by means of the keyboard. The converted code does nothing if the user moves the input focus by clicking on the target control.

The problem: under VB6 the target control receives a MouseDown event and then a GotFocus event, whereas under VB.NET the target control receives the GotFocus event and then the MouseDown event. Alas, the MouseDown action nullifies the text selection performed inside the GotFocus event handler.

 

Previous | Index | Next