使FlowLayoutPanel具有透明背景

时间:2017-01-05 04:00:45

标签: vb.net flowlayoutpanel

我有一个按钮,可以动态地为表单添加24个标签。问题是他们的位置。

我发现不是为每个人手动设置一个特定的位置,而是像FlowLayoutPanel一样自动安排它们。但FLP将位于顶部并隐藏其下的控制权。送回去更糟糕。所以我想把它带到前面但保持透明,这样它就不会隐藏它下面的其他控件。

任何建议都会很棒

感谢。

1 个答案:

答案 0 :(得分:1)

  

我可以像FlowLayoutPanel一样自动安排它们。   但是我不能使用它,因为它会在顶部隐藏图像   我的照片。

嗯,您可以使用具有透明背景的FlowLayoutPanel,这样它就不会隐藏您拥有的其他控件。怎么做?好吧,this answer向您展示了如何制作透明的Panel。你应该可以轻松地调整它以使用FlowLayoutPanel使用类似的东西:

Public Class TransparentFLP
    Inherits FlowLayoutPanel

    Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
        Get
            Dim cp As CreateParams = MyBase.CreateParams
            cp.ExStyle = cp.ExStyle Or &H20 ''#WS_EX_TRANSPARENT
            Return cp
        End Get
    End Property
    Protected Overrides Sub OnPaintBackground(ByVal e As System.Windows.Forms.PaintEventArgs)
        ''#MyBase.OnPaintBackground(e) --> Don't uncomment this orelse
                                          'it will cause the BackColor to be redrawn.
    End Sub

End Class
  • 向您的项目添加新的Class
  • 将上述代码粘贴到其中。
  • 重建您的项目。
  • 将新控件从工具箱顶部拖放到表单上(而不是使用原始FlowLayoutPanel)。
  • 你很高兴。

P.S。我不确定您使用的是4个面板,但您可能会考虑使用TableLayoutPanel代替。

希望有所帮助:)

相关问题