Vb.Net - 动态更改文本框BackColor的类

时间:2013-04-21 17:43:12

标签: vb.net class validation textbox backcolor

我想知道如何创建一个Class来更改Form中的每个文本框BackColor。 更具体:

  1. 当文本框为空时,文本框BackColor等于白色。
  2. 当文本框获得焦点时,文本框BackColor会发生变化。
  3. 当文本框中有任何文本时,文本框BackColor会更改。
  4. 当文本框失去焦点时,文本框BackColor会发生变化。
  5. 目前,我这样做。

    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
    

    但是,我有很多TextBox,所以,我该如何为它创建一个类?

    由于

2 个答案:

答案 0 :(得分:0)

您可以创建一个包含文本框控件集合的类。您可以通过Form或用户控件的Controls属性获取此集合,并验证控件的类型。 在内部,类必须订阅文本框控件集合中列出的事件。 最后,在处理事件的方法上,您必须编写相应更改颜色的逻辑。 请记住,handle事件方法具有在第一个参数上触发事件的控件。

如果你有更多疑问,我可以详细说明。

答案 1 :(得分:0)

您需要做的就是从TextBox控件继承。

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

构建项目,然后用新的TextBoxEx控件替换TextBox控件。