我创建了一个完美的进度条。我最近添加了百分比,但我想在进度条顶部显示标签。
像这样:
您可以看到的唯一问题是背景不透明。暂缓:
lblPercentage.BackColor = Color.Transparent
表单加载...是否有可以为此做的事情?
答案 0 :(得分:3)
Transparent BackColor实际上有效。问题是标签从表单中获取其BackColor,因为表单是其Parent。因此,我们必须使进度条成为其父级并调整其位置,因为现在必须相对于进度条指定它。将此代码添加到表单中:
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
作为进度条的基类。这将允许您在设计器中将标签放在其上。答案 1 :(得分:1)
这里你已经使你的进度条透明,这意味着它只对进度条透明,并且在进度条后面有表单,这就是它显示表单的原因。
这是一个Windows限制,透明效果相对于顶级窗口,堆叠效果不起作用。总是你会看到form
作为背景,