投稿者 るきお  (社会人) 投稿日時 2013/4/4 22:06:07
プログレスバーはそのまま使ったことしかないです。
私の勘ではあまりいじらないでありのままで使った方が良いと思います。

一応プログレスバーを赤くする例を紹介します。
このプログラムを一度実行するとツールボックスにProgressBarExが出現します。
ProgressBarExをフォームに配置すると、赤いプログレスバーです。
Public Class ProgressBarEx
    Inherits ProgressBar

    Public Sub New()
        Me.SetStyle(ControlStyles.UserPaint, True)
    End Sub

    Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)

        Const Edge As Integer = 1

        Dim width As Integer = e.ClipRectangle.Width * (Me.Value / Me.Maximum) - 4
        Dim height As Integer = e.ClipRectangle.Height - (Edge * 2)

        Dim rect As New Rectangle(Edge, Edge, width, height)

        If ProgressBarRenderer.IsSupported Then
            ProgressBarRenderer.DrawHorizontalBar(e.Graphics, e.ClipRectangle)
        Else
            Dim outerRect As Rectangle = e.ClipRectangle
            outerRect.Width -= 1
            outerRect.Height -= 1
            e.Graphics.DrawRectangle(Pens.Black, outerRect)
        End If

        e.Graphics.FillRectangle(Brushes.Red, rect)

    End Sub

End Class


YuOさんの方法は私はどうも実現できませんでした。