首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于多种条件启用或禁用按钮

基于多种条件启用或禁用按钮
EN

Stack Overflow用户
提问于 2021-05-14 07:04:27
回答 1查看 380关注 0票数 1

我有一个用户表单。

我希望只有当用户选择选中标记、选择OPTIONA或OPTIONB并单击文本按钮时才启用OK按钮。

用户型

我尝试了这段代码,但是如果我执行任何一个操作,OK按钮就会激活。

代码语言:javascript
复制
Option Explicit

Private Sub CancelBtn_Click()
    Unload Me
End Sub

Private Sub UserForm_Initialize()
    OkBtn.Enabled = False
End Sub

Private Sub Option1_Click()
    If Option1.Enabled = True Then
        OkBtn.Enabled = True
    End If
End Sub

Private Sub CheckBox1_Click()
    If CheckBox1.Enabled = True Then
        OkBtn.Enabled = True
    End If
End Sub

Private Sub TextEntry_Change()
    If TextEntry.Enabled = False Then
        OkBtn.Enabled = False
    Else: TextEntry.Enabled = True
        OkBtn.Enabled = True
    End If
End Sub
 
Private Sub TextBtn_Click()
    TextEntry.Text = "TEXT"
End Sub

Private Sub OkBtn_Click()  
    MsgBox " i am enabled"
End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-14 08:27:11

将此代码合并到表单中:

代码语言:javascript
复制
Public TextPressed As Boolean

Private Sub Option1_Click()
    Call EnableOKBtn
End Sub

Private Sub Option2_Click()
    Call EnableOKBtn
End Sub

Private Sub TextBtn_Click()
    Me.TextEntry.Text = "TEXT"
    TextPressed = True
    Call EnableOKBtn
End Sub

Sub EnableOKBtn()
    If TextPressed = True Then
        If Me.Option1 = True Or Me.Option2 = True Then
            Me.OKBtn.Enabled = True
        End If
    End If
End Sub

基本上,它只是使用一个公共布尔值来判断文本按钮是否已被按下。如果发生这种情况,则值更改为true。然后调用单独的子"EnableOKBtn“,检查其中一个选项按钮是否也是真的。如果其中一个选项为true,而公共布尔值为true,则启用“确定”按钮。只需在默认情况下禁用属性中的“确定”按钮即可。这样,您就不必在初始化事件中设置它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67530284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档