选择后,RadioButton不会更改面板显示

时间:2015-12-30 21:01:23

标签: vb.net

你好我试图在面板显示期间改变这个radiobutton,但事实并非如此。无论选择顺序如何,我都希望它能够改变,但我遇到了一些困难。我知道这很容易解决,但如果有人可以提供帮助,我会非常感激。

Public Sub RadioButton()

    If RadioButton1.Checked Then
        Panel2.Visible = True
    End If
    If RadioButton2.Checked Then
        Panel3.Visible = True
    End If
    If RadioButton3.Checked Then
        Panel4.Visible = True
    End If
    If RadioButton4.Checked Then
        Panel5.Visible = True
    End If

End Sub

3 个答案:

答案 0 :(得分:3)

我猜你要切换面板'基于选择的单选按钮的可见性。问题是你只能使这些面板可见但从不可见(即当一个面板变得可见,其他面板不可见)。将您的代码更改为:

Panel2.Visible = RadioButton1.Checked
Panel3.Visible = RadioButton2.Checked
Panel4.Visible = RadioButton3.Checked
Panel5.Visible = RadioButton4.Checked

答案 1 :(得分:1)

这听起来几乎就像你的面板层叠在一起 - 首先要检查的是,没有一个面板是另一个面板的子面板没有任何其他面板的子面板?如果您在窗体设计器中使用拖放移动面板,则可以非常轻松地进行此操作。

从Visual Studio视图菜单中,单击视图>其他Windows>文档大纲

这将打开一个Visual Studio选项卡,显示表单上的所有控件。看看Panel控件。如果有任何低于另一个并且缩进 - 像这样: -

enter image description here

Panel5是Panel2的孩子。要更正此问题,请将Panel5拖到Form1下方。或者 - 在选项卡的顶部。你可以看到左,右,上和下箭头。单击缩进面板,然后单击向左箭头。

对任何其他缩进面板执行此操作。

下一步 - 你编码。如果你的面板不在彼此的顶部,它应该工作正常,但如果它们在彼此的顶部,那么你可能还需要将面板放在堆的前面 -

Panel2.BringToFront

希望这可以解决问题。

答案 2 :(得分:1)

你甚至处理RadioButtons'事件

您可以使用CheckedChanged事件:

Private Sub RadioButtons_CheckedChanged(sender As Object, e As System.EventArgs) Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged, RadioButton3.CheckedChanged, RadioButton4.CheckedChanged
    Panel2.Visible = RadioButton1.Checked
    Panel3.Visible = RadioButton2.Checked
    Panel4.Visible = RadioButton3.Checked
    Panel5.Visible = RadioButton4.Checked
End Sub

了解详情: CheckedChanged Event - MSDN