Solved custom progressbar, how to overlay an image in pbar?

Posted on 2009-06-30
Last Modified: 2013-11-26
How would I go about stretching an image as a progressbar?  Meaning I have an image that I want to put inside of a progressbar and have it get longer and longer until 100%
Question by:bluedragon99
  • 2
LVL 15

Expert Comment

Comment Utility
if you set the height/width properties of an image then the browser should stretch the image to fit.

<img src="1.jpg" width="10px">

<img src="1.jpg" width="100px">
LVL 15

Expert Comment

Comment Utility
whoops, i think you also need to set the height to stop the browser simply scaling the entire image

<img src="1.jpg" width="10px" height="20px">

<img src="1.jpg" width="100px" height="20px">
LVL 85

Accepted Solution

Mike Tomlinson earned 500 total points
Comment Utility
For WinForms, just create a UserControl with a PictureBox inside of it.  Set the SizeMode of the PB to StretchImage and then simply adjust the size of the PB to stretch the image...

Something like:
(if you add UserControl class first and then build the project you should get your new usercontrol in the ToolBox)
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        PictureProgressBar1.Image = New Bitmap("C:\Users\Mike\Pictures\AmericanFlag.jpg")

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Button1.Enabled = False

        For i As Integer = 0 To 100

            PictureProgressBar1.Percentage = i




        Button1.Enabled = True

    End Sub

End Class

Public Class PictureProgressBar

    Inherits UserControl

    Private P As Integer = 0

    Private PB As New PictureBox

    Public Property Image() As Image


            Return PB.Image

        End Get

        Set(ByVal value As Image)

            PB.Image = value

        End Set

    End Property

    Public Sub New()

        PB.BorderStyle = Windows.Forms.BorderStyle.None

        PB.Location = New Point(0, 0)

        PB.Size = New Size(0, Me.ClientRectangle.Height)

        PB.SizeMode = PictureBoxSizeMode.StretchImage

        PB.BackColor = Color.Red


        Me.Percentage = 0

        Me.BorderStyle = Windows.Forms.BorderStyle.FixedSingle

    End Sub

    Public Property Percentage() As Integer


            Return P

        End Get

        Set(ByVal value As Integer)

            If value >= 0 AndAlso value <= 100 Then

                P = value


            End If

        End Set

    End Property

    Private Sub PictureProgressBar_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint


    End Sub

    Private Sub PictureProgressBar_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged


    End Sub

    Private Sub UpdateProgessSize()

        PB.Size = New Size(P / 100 * Me.ClientRectangle.Width, Me.ClientRectangle.Height)

    End Sub

End Class

Open in new window


Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

This article describes relatively difficult and non-obvious issues that are likely to arise when creating COM class in Visual Studio and deploying it by professional MSI-authoring tools. It is assumed that the reader is already familiar with the cla…
Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now