【问题标题】:If i selectedindex = 2, panel show/hide not working in ComboBox Visual Basic如果我 selectedindex = 2,面板显示/隐藏在 ComboBox Visual Basic 中不起作用
【发布时间】:2021-04-10 21:12:53
【问题描述】:

好的,这是我的问题。 我有一个问题,当我选择 selectedindex = 2 时,当它第一次运行时,代码无法显示面板,我必须在选择 selectedindex = 2 之前选择 selectedindex = 1。

问题是,如何在 selectedindex = 2 处显示面板,而不必先选择 selectedindex = 1。

这是我使用的代码

    Private Sub choose(sender As Object, e As EventArgs) Handles choose1.SelectedIndexChanged
    If choose1.SelectedIndex = 1 Then
        luaspersegi.Visible = True
        kelilingpersegi.Visible = False
    ElseIf choose1.SelectedIndex = 2 Then
        kelilingpersegi.Visible = True
    End If

这是我的结果

https://prnt.sc/1196xy4

如图所示,当我选择“Keliling”时,selectedindex = 2,我隐藏的面板会出现,但不会出现。我必须先选择 selectedindex = 1 然后选择 selectedindex = 2 以调出面板。

【问题讨论】:

  • 如果两个面板重叠在一起(位置相同),需要设置一个visible=true,上一个设置visible=false 。似乎您让第一个面板始终可见,隐藏了另一个面板
  • 我试过了,还是不行。

标签: vb.net visual-studio


【解决方案1】:

当您创建面板时。您需要确保它们不会相互重叠。否则,这意味着其中一个人住在另一个面板中。因此,如果您将父级设置为不可见,则尽管您称它们为可见,但另一个也将被隐藏。

您需要做的是创建 2 个不可见的面板并将它们放在不同的位置,只要它们不相互重叠,然后通过组合单击设置可见性并将它们定位到正确的位置。

代码来了

 Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    If sender.selectedIndex = 0 Then

        Panel1.Left = 100
        Panel1.Top = 100
        ' Set the position for your panel

        Panel1.Visible = True
        Panel1.Width = 500
        Panel1.Height = 500

        ' set the size
        Panel2.Visible = False
        'make panel2 invisible

    ElseIf sender.selectedIndex = 1 Then

        Panel2.Left = 100
        Panel2.Top = 100

        Panel2.Visible = True
        Panel2.Width = 500
        Panel2.Height = 500
        Panel1.Visible = False
    End If
End Sub

如果对您有帮助,请将其标记为答案。我为代码创建了一个测试程序,它可以工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 2018-05-12
    • 2013-03-01
    相关资源
    最近更新 更多