【问题标题】:How to change the color of a senders parent on event?如何在事件中更改发件人父级的颜色?
【发布时间】:2014-08-14 17:16:20
【问题描述】:

我是这个视觉环境的新手,当点击其中的单选按钮时,我无法弄清楚如何更改面板的颜色。

这是我尝试过的代码。消息框用于报告它来自 Panel1,但我不能使用相同的代码来更改 Panel1 的颜色。

Private Sub rad01yes_CheckedChanged(sender As Object, e As EventArgs) Handles rad01yes.CheckedChanged
    MsgBox(sender.parent.name.ToString(), vbOK, "TitleHere")
    sender.parent.name.colorselection = Color.Black
End Sub

我也试过了

sender.parent.colorselection = Color.Black

    Dim myPanel As Panel = sender
    myPanel.BackColor = Color.Black

我无法通过搜索找到任何内容。我想我的问题措辞可能有误?

【问题讨论】:

    标签: visual-studio vba basic


    【解决方案1】:

    这里的问题是senderObject 类型,因此没有ParentBackColor 属性。相反,您需要使用DirectCastSender.Parent 转换为Panel 的类型。

    Private Sub rad01yes_CheckedChanged(sender As Object, e As EventArgs) Handles rad01yes.CheckedChanged
        MsgBox(sender.parent.name.ToString(), vbOK, "TitleHere")
        Dim sendersPanel = DirectCast(sender.Parent, Panel)
        sendersPanel.BackColor = Color.Black
    End Sub
    

    不过,请注意。 CheckChanged 事件在表单首次加载时触发,因此上述代码将导致程序首次启动时面板的颜色为黑色。您可能希望在 RadioButtonClicked 事件处理程序中对此进行编码。

    【讨论】:

    • 或者只是在 InitializeComponent 调用之后在表单的新方法中设置单选按钮处理程序,这样您就不会在表单加载时触发该方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    • 2021-06-11
    相关资源
    最近更新 更多