向按钮上的面板添加按钮 - 按钮显示在错误的面板

时间:2016-06-19 16:00:50

标签: vb.net visual-studio-2015 controls

我一直在使用我的Foci程序。它由mock-ini文件控制,该文件定义了tabpages,按钮以及它们在单击时所执行的操作。我可以通过编辑ini文件来改变一切。我决定将给定标签页上的按钮分组的最简单方法是将每个按钮放在面板上。所以今天早上我添加了由'使用newPanel'定义的代码部分。其余代码已经正常工作。每个面板足够大,以提供位于面板中心的按钮周围的边界。面板的尺寸使得它们接触,从而形成具有相同颜色的其他按钮的区域。

我的问题是给定标签页上的所有按钮都被添加到第一个面板。所有按钮都显示足够的面板,但除第一个按钮外,它们都是空的。我对这种行为感到困惑。

以下是相关代码:

        newButton = New Button
        SelectATab(sTab)            'select correct tab...

        With newButton
            .Name = "btn" & sText.Replace(" ", [String].Empty)
            .Text = sText
            .Tag = sFullPath
            .BackColor = BC
            .ForeColor = FC
            .Location = NewLocation()
            .Width = Convert.ToInt32(oIni.ButtonWidth)
            .Height = Convert.ToInt32(oIni.ButtonHeight)
        End With

        Dim newPanel As New Panel

        With newPanel
            .Name = "pnl" & sTab & sText.Replace(" ", [String].Empty)
            .Text = sText
            .Tag = sFullPath
            .BackColor = Color.Black
            .Location = NewPanelLocation(newButton.Location)
            .Width = Convert.ToInt32(oIni.ButtonWidth + 20)
            .Height = Convert.ToInt32(oIni.ButtonHeight + 10)
        End With

        AddHandler newButton.Click, AddressOf MyEventHandler
        newPanel.Controls.Add(newButton)
        tabControl1.SelectedTab.Controls.Add(newPanel)

提前致谢。

1 个答案:

答案 0 :(得分:0)

我已经达到了我想要的效果。我现在将按钮和面板直接添加到标签页。之前,我正在向面板添加按钮,然后将面板添加到标签页。我猜控件实际上并没有添加到面板中。我认为他们这样做是错误的。