我创建了一个完美运行的进度条。我最近添加了百分比,但我想在进度条顶部显示标签。
像这样:
您可以看到的唯一问题是背景不透明。尽管有:
lblPercentage.BackColor = Color.Transparent
在表单加载...有什么可以做的吗?
我创建了一个完美运行的进度条。我最近添加了百分比,但我想在进度条顶部显示标签。
像这样:
您可以看到的唯一问题是背景不透明。尽管有:
lblPercentage.BackColor = Color.Transparent
在表单加载...有什么可以做的吗?
透明背景色确实有效。问题是标签从表单中获取它的背景色,因为表单是它的父级。因此,我们必须将进度条设为其父级并调整其位置,因为现在必须相对于进度条指定它。将此代码添加到您的表单中:
Public Sub New()
InitializeComponent()
Dim pos As Point = PointToScreen(lblPercentage.Location)
pos = myProgressBar.PointToClient(pos)
lblPercentage.Parent = myProgressBar
lblPercentage.Location = pos
lblPercentage.BackColor = Color.Transparent
End Sub
或者,您可以像这样计算标签的位置
lblPercentage.Location = New Point(lblPercentage.Location.X - myProgressBar.Location.X,
lblPercentage.Location.Y - myProgressBar.Location.Y)
您不能在设计器中进行此操作,因为您的进度条可能不是容器控件(即在其上放置标签不会使其成为该栏的子控件),并且您不会在设计器中看到结果。
更新
您也可以尝试以下替代方案:
OnPaint
(覆盖OnPaint
)。UserControl
作为进度条的基类。这将允许您将标签放在设计器中。在这里,您已使进度条透明,这意味着它仅对进度条透明,并且进度条后面有表格,这就是它显示表格的原因。这是一个 Windows 限制,透明效果相对于顶层窗口,堆叠效果不起作用。总是你会看到form
作为背景,