如何更改标签的标题,因为来自不同形式的选项按钮的回答,VBA

时间:2016-12-08 18:55:17

标签: forms vba

我正在创建一个基准测试工具。该工具需要弹出不同的表单,具体取决于单击的按钮。 我想要做的是根据从不同表单中选择的选项从一个表单中更改特定标签。下面是我试图使用的代码。我知道没有Form2。在Yourlabel之前。我可以更改当前形式的标签(表单1),但需要它更改表单2中标签的标题。我希望这很清楚。

Private Sub Option1_Click()
Form2.YourLabel.Caption = "Customer Code"
End Sub

有任何帮助吗?

2 个答案:

答案 0 :(得分:0)

Form1拥有Form2类型的公共属性:

Private otherForm As Form2

Public Property Get TheOtherForm() As Form2
    Set TheOtherForm = otherForm
End Property

Public Property Set TheOtherForm(ByVal value As Form2)
    Set otherForm = value
End Property

Private Sub Option1_Click()
    otherForm.YourLabel.Caption = "Customer Code"
End Sub

现在负责调出Form1实例的人员也负责设置TheOtherForm参考:

Dim frm1 As Form1
Set frm1 = New Form1

Dim frm2 As Form2
Set frm2 = New Form2

Set frm1.TheOtherForm = frm2
frm1.Show

请注意,代码是New表单实例,而不是使用表单类型的默认实例:这样就可以完全控制对象'寿命。

现在,您将Form1与您在Form2上拥有的用户界面布局相结合。更好的想法是在Form2上公开一个公共程序,在两者之间引入一点抽象:

Public Sub SetMyLabelCaption(ByVal value As String)
    YourLabel.Caption = value
End Sub

然后Form1中的点击处理程序可以只调用otherForm.SetMyLabelCaption "CustomerCode"而不关心实际标签的名称,或者是否甚至是标签。

答案 1 :(得分:0)

您必须参考表格名称 - > Label Name,然后调用Label的Caption属性来更改标题。

然后加载表单,并重新绘制以显示新的标签标题

Private Sub CommandButton1_Click()

    If OptionButton1.Enabled Then
    msgbox "The Caption of your label is going to be changed"
    UserForm2.lbl_frm2.Caption = "The New caption Is here"
    UserForm2.Show
    UserForm2.Repaint
    End If

    End Sub