使用 ToggleButton 的 false .Value 在单击时移除顶部的灰色

Using ToggleButton's false .Value to remove the grey color on top when it is clicked

我试图让 ToggleButton 看起来总是黑色的,但是当点击时,顶部总是出现这个灰色遮罩(可能是为了“点击”效果):

我发现使用 ToggleButtonfalse .Value 可以删除它,但我现在的问题是我正在创建的用户表单在关闭后再次出现。有没有办法解决这个问题? 当您单击按钮时,这是我的子程序:

Private Sub ToggleButton1_Click()

    ToggleButton1.Value = False
    ToggleButton1.Caption = "Afficher l'interface"
    ToggleButton1.ForeColor = RGB(255, 255, 255)
    ToggleButton1.BackColor = RGB(0, 0, 0)
    UF_Interface.Show 'Userform I want to show when you click the button

End Sub

谢谢

如果我可以建议,如果你想使用 ToggleButton,
也许最好做两个条件(如果为真那么什么,如果为假那么什么),
如下图:

所以在上图中,如果为真则打开另一个 UF - 如果为假则关闭那个 UF。

以下是 ToggleButton 所在的 UF 中的代码:

Private Sub UserForm_Initialize()
    With ToggleButton1
        .Caption = "OPEN UF_Interface"
        .BackColor = vbYellow
    End With
End Sub

Private Sub ToggleButton1_Click()
With ToggleButton1
    If .Value = True Then
        .Caption = "CLOSE UF_Interface"
        .BackColor = vbGreen
        UF_Interface.Show vbModeless
    Else
        .Caption = "OPEN UF_Interface"
        .BackColor = vbYellow
        Unload UF_Interface
    End If
End With
End Sub

两种用户表单(UF_Interface 和带有切换按钮的用户表单)都必须显示为 vbModeless 状态。所以你需要在常规模块中创建另一个子模块,如下所示:

Sub OpenFormWithToggleButton()
FormWithToggleButton.Show vbModeless
End Sub

@karma 的帮助下,我以这种方式修改了我的代码(因为我无法更改颜色“正常”Button,尽管我想要它的工作方式):

Private Sub ToggleButton1_Click()
    With ToggleButton1
        If .Value = True Then
            .Caption = "Afficher l'interface"
            .BackColor = vbBlack
            .Value = False
            UF_Interface.Show 'Userform I wanted to show
        End If
    End With
End Sub