我創建了一個完美的進度條。我最近添加了百分比,但我想在進度欄上顯示標籤。VB.NET進度條百分比
像這樣:
,你可以看到的唯一的問題是,背景是不是透明的。儘管有:
lblPercentage.BackColor = Color.Transparent
在表單加載...有什麼可以做到這一點?
我創建了一個完美的進度條。我最近添加了百分比,但我想在進度欄上顯示標籤。VB.NET進度條百分比
像這樣:
,你可以看到的唯一的問題是,背景是不是透明的。儘管有:
lblPercentage.BackColor = Color.Transparent
在表單加載...有什麼可以做到這一點?
Transparent BackColor實際上起作用。問題在於標籤從表單中獲取它的BackColor,因爲表單是其父。因此,我們必須將進度條作爲其父項並調整其位置,因爲現在必須相對於進度條進行指定。此代碼添加到您的窗體:
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)
你不能在設計使這個,因爲你的進度條可能不是一個容器控件(即在其上放置標籤不會使其成爲酒吧的子控件),並且您不會在設計師中看到結果。
UPDATE
您也可以嘗試這些替代方案:
OnPaint
方法的百分比數(覆蓋OnPaint
)。UserControl
作爲進度條的基類。這將允許您在設計器上放置標籤。這裏你已經使你的進度條透明,這意味着它只透明進度條和進度條後面有形式,這就是爲什麼它顯示形式。 這是一個Windows的限制,透明效果是相對於頂級窗口,堆疊效果不起作用。一般你會看到form
作爲背景,
所以沒有辦法讓標籤透明,而不是表單的進度條? – Alex
http://www.vbdotnetforums.com/using-components-controls/7959-text-inside-progressbar.html –
此鏈接都有工作了如何做到這一點 –
完整的源代碼,謝謝! – Alex