日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实现自定义背景色、前景色、显示进度的进度条

發布時間:2023/12/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实现自定义背景色、前景色、显示进度的进度条 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

版權聲明:本文為博主原創文章,轉載請在顯著位置標明本文出處以及作者網名,未經作者允許不得用于商業目的。


默認情況下,VB.Net自帶的進度條都是固定顏色的。即使設置前景色、背景色也沒用,另外,自帶進度條也不顯示當前進度數值。
實際使用時,如果有特殊需求,使用默認進度條,顯然效果不太好。
本篇文章建立一個ProgressBar的繼承類NewProgressBar,從而實現自定義背景色、前景色、顯示進度的進度條。

最終實現效果:

NewProgressBar的代碼:

Public Class NewProgressBarInherits ProgressBarPublic Property FontColor As ColorPublic Sub New()Me.SetStyle(ControlStyles.UserPaint, True)End SubProtected Overrides Sub OnPaint(e As PaintEventArgs)Dim percent As Integerpercent = CType((Value * 100) / Maximum, Integer)Dim rec As Rectangle = e.ClipRectanglerec.Width = CType((rec.Width * Value / Maximum), Integer) - 4If ProgressBarRenderer.IsSupported ThenProgressBarRenderer.DrawHorizontalBar(e.Graphics, e.ClipRectangle)End Ifrec.Height = rec.Height - 4e.Graphics.FillRectangle(New SolidBrush(Me.BackColor), 0, 0, e.ClipRectangle.Width, e.ClipRectangle.Height)e.Graphics.FillRectangle(New SolidBrush(Me.ForeColor), 2, 2, rec.Width, rec.Height)e.Graphics.DrawString(percent.ToString & "%", New Font("宋體", 10), New SolidBrush(FontColor), New Point(0, 5))MyBase.OnPaint(e)End SubEnd Class

其中,背景色、前景色使用ProgressBar這個基類的(雖然對于ProgressBar沒用),增加了FontColor屬性來設置進度數值的顏色。
窗體代碼:
窗體載入時:

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Loadnewpro = New NewProgressBarnewpro.Left = 20newpro.Top = 40newpro.Width = 200newpro.BackColor = Color.FromArgb(128, 255, 128)newpro.ForeColor = Color.DeepSkyBluenewpro.FontColor = Color.Whitenewpro.Maximum = 100Me.Controls.Add(newpro)newpro.Visible = TrueEnd Sub

向添加Timer組件。設置Timer的Tick事件代碼:

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Ticknewpro.Value += 1If newpro.Value = newpro.Maximum Then Timer1.Stop()End Sub

窗體上按鈕代碼:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickTimer1.Start()End Sub

?

如果覺得代碼中生成調用NewProgressBar不方便,也可以像普通控件一樣從工具箱中調用。當NewProgressBar類的代碼完成后,可以從工具箱找到這個組件,拖放到窗體上:

直接在屬性窗口中設置相關屬性:

向窗體添加一個Button和Timer,增加代碼如下:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.ClickTimer2.Start()End SubPrivate Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.TickNewProgressBar1.Value += 1If NewProgressBar1.Value = NewProgressBar1.Maximum Then Timer2.Stop()End Sub

運行效果:

?

由于.net平臺下C#和vb.NET很相似,本文也可以為C#愛好者提供的參考。

學習更多vb.net知識,請參看?vb.net 教程 目錄

總結

以上是生活随笔為你收集整理的实现自定义背景色、前景色、显示进度的进度条的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。