2

我想知道如何创建一个类来更改表单内的每个文本框 BackColor。更加具体:

  1. 当文本框为空时,文本框背景颜色等于白色。
  2. 当文本框获得焦点时,文本框的背景颜色发生变化。
  3. 当文本框有任何文本时,文本框 BackColor 会发生变化。
  4. 当文本框失去焦点时,文本框的背景颜色发生变化。

目前,我正在这样做。

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

但是,我的 from 中有很多 TextBox,那么,如何为它创建一个 Class 呢?

谢谢

4

2 回答 2

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 控件。

于 2013-04-21T20:41:19.343 回答
0

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

如果您有更多疑问,我可以更详细地介绍。

于 2013-04-21T18:24:50.230 回答