Search code examples
vb.netclassvalidationtextboxbackcolor

Vb.Net - Class to Change Textbox BackColor Dynamically


I'd like to know how to create a Class to change each textbox BackColor inside a Form. To be more Specific:

  1. When the textbox Is Empty, the textbox BackColor equals White.
  2. When the textbox Get focus, the textbox BackColor change.
  3. When the textbox have any text, the textbox BackColor change.
  4. When the textbox Lost focus, the textbox BackColor change.

At the moment, I'm doing it this way.

Private Sub tb_Login_Enter(sender As Object, e As EventArgs) Handles tb_Login.Enter
    tb_Login.BackColor = Color.LightCyan
End Sub

Private Sub tb_Login_Leave(sender As Object, e As EventArgs) Handles tb_Login.Leave
    If tb_Login.Text <> "" Then
        tb_Login.BackColor = Color.LightGreen
    Else
        tb_Login.BackColor = Color.White
    End If

But, I have many TextBox in my from, so, how can I create a Class for it?

Thanks


Solution

  • All you need to do is inherit from the TextBox control.

    Public Class TextBoxEx
        Inherits TextBox
    
        Private Sub TextBoxEx_Enter(sender As Object, e As EventArgs) Handles Me.Enter
            Me.BackColor = Color.LightCyan
        End Sub
    
        Private Sub TextBoxEx_Leave(sender As Object, e As EventArgs) Handles Me.Leave
            If Me.Text <> "" Then
                Me.BackColor = Color.LightGreen
            Else
                Me.BackColor = Color.White
            End If
        End Sub
    End Class
    

    Build your project and then replace your TextBox controls with the new TextBoxEx control.