如何从另一个UserControl中更改UserControl中的Button的BackColor?

时间:2015-01-13 08:33:10

标签: asp.net vb.net

我在用户控件中使用了一个asp按钮,这个用户控件在另一个用户控件中,我想从第二个用户控件改变asp按钮的背面颜色,

我使用了以下代码,但颜色没有变化。当我使用btn.Text更改按钮的文本时,这将更改,但是当我更改btn.BackColor时,这不起作用。

Dim btn As Button = DirectCast(ucontrolLetterSelect.FindControl(buttonID), System.Web.UI.WebControls.Button)
btn.BackColor = System.Drawing.Color.Red

1 个答案:

答案 0 :(得分:1)

您需要在用户控件上创建一个公开的属性,该按钮是您要更改的按钮。然后,您可以通过父用户控件设置此属性。

例如:

我有一个名为TestControl1.ascx的用户控件

我在这个用户控件上放了一个名为btnTest的按钮

我还在这个用户控件的代码隐藏中创建了一个名为SetUserControlButtonBackColor的公共属性。

Public Property SetUserControlButtonBackColor As Color
    Get
        Return mColor
    End Get
    Set(value As Color)
        Me.btnTest.BackColor = value
    End Set
End Property

我将此用户控件放入我的网页,并在我的网页上放置一个名为Button1的按钮

在Button1的click事件中,我设置了我的用户控件的public exposed属性,用于设置用户控件中按钮的背景颜色。

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Me.TestControl1.SetUserControlButtonBackColor = Drawing.Color.Aqua
End Sub

现在,当您单击网页上的按钮时,它将更改用户控件的颜色