【问题标题】:Changing the ForeColor of a Textbox according to click, and returning it to its previous Forecolor when clicking another textboxt?根据单击更改文本框的前景色,并在单击另一个文本框时将其返回到以前的前景色?
【发布时间】:2021-01-21 05:48:06
【问题描述】:

我有几个文本框,我想更改用户将单击的文本框的前景色,但是当用户单击另一个文本框时,前一个文本框必须将其前景色更改为单击前的文本框(默认颜色)。

我有以下改变文本框颜色的方法:

Private Sub D8_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    D8.ForeColor = &H80000002
End Sub

但我不知道如何在单击另一个文本框时将其更改回之前的前景色。

谢谢

【问题讨论】:

  • 如果你有很多文本框,而 Brian 的回答太麻烦了,或者你想把所有东西都减少到一个 sub 中,你可以制作一个 Class Module 来捕获一个 Sub 中的所有文本框,然后对每个文本框使用相同的 Enter Exit 想法。这个答案here 非常适合。

标签: vba


【解决方案1】:

您可以使用 Enter 和 Exit 事件:

Option Explicit

Private Sub TextBox1_Enter()
   TextBox1.ForeColor = &H80000002
End Sub

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
   TextBox1.ForeColor = vbWindowText
End Sub

Private Sub TextBox2_Enter()
   TextBox2.ForeColor = &H80000002
End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
   TextBox2.ForeColor = vbWindowText
End Sub

【讨论】:

    猜你喜欢
    • 2011-04-27
    • 2015-11-04
    • 2013-01-29
    • 1970-01-01
    • 2021-12-16
    • 2014-05-19
    • 2015-02-20
    • 2010-11-24
    • 1970-01-01
    相关资源
    最近更新 更多