如何使用vb.net自定义进度条

时间:2013-12-13 04:03:39

标签: vb.net progress-bar

我正在尝试创建一个与值相关的颜色编码的进度条。例如,从0到35,进度条应为红色,高于35,绿色。知道如何去做吗?

If ProgressBar1.Value >= 35 Then
ProgressBar1.BackColor = Color.Green
Else
ProgressBar1.BackColor = Color.Red
End If

在同一进度条中的P.S,两种颜色都必须根据值

显示

3 个答案:

答案 0 :(得分:2)

您需要更改此设置。

Go to Project --> [WindowsApplication] Properties

On Application Tab -- Uncheck Enable Visual Styles

但是,请注意,您将看到进度条上的视觉更改。

然后您可能会像这样编码:

If (ProgressBar1.Value > 35) Then
    ProgressBar1.ForeColor = Color.Red
Else
    ProgressBar1.ForeColor = Color.Green
End If

答案 1 :(得分:0)

进度条的位置存储在ProgressBar1.value中。您可以在If语句中检查此值,并使用ProgressBar1.ForeColor更改颜色

例如:

If ProgressBar1.value > 35 Then
    ProgressBar1.ForeColor = Color.Lime
End If

我希望这会有所帮助;)

修改:尝试使用ProgressBar1.ForeColor而不是ProgressBar1.BackColor

答案 2 :(得分:0)

您可以使用此方法。

Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
Enum ProgressBarColor
    Green = &H1
    Red = &H2
    Yellow = &H3
End Enum
Private Shared Sub ChangeProgBarColor(ByVal ProgressBar_name As Windows.Forms.ProgressBar, ByVal ProgressBar_Color As ProgressBarColor)
    SendMessage(ProgressBar_name.Handle, &H410, ProgressBar_Color, 0)
End Sub

然后通过调用上面的函数来添加条件语句,例如

 If ProgressBar1.Value >= 35 Then
     ChangeProgBarColor(ProgressBar1, ProgressBarColor.Red)
 Else
     ChangeProgBarColor(ProgressBar1, ProgressBarColor.Yellow)
 End If