Très bonne explication chrismonoye :ccool:
:plusser:
Version imprimable
Très bonne explication chrismonoye :ccool:
:plusser:
Merci à vous pour votre aide,
Pour ceux que ça interresse j'ai ajouté ceci dans ma classe :
Ca permet de redessiner le texte dés que la propriété Value du ProgressBar change. Sans cela le texte était rafraîchie un peu aléatoirement (il fallait attendre l’évènement WndProc) et le texte et l'avancement de la barre semblait désynchronisé.
Code:
1
2
3
4
5
6
7
8
9
10
11 Public Shadows Property Value() As Int32 Get Return MyBase.Value End Get Set(ByVal value As Int32) If value <> Me.Value Then MyBase.Value = value Me.Invalidate() End If End Set End Property
Bonjour,
Je cherchais justement à faire la même chose. Merci à tous.
Mais sur mon Windows 7, le texte clignote un peu (à cause de l'effet visuel).
Alors j'ai rajouté ça pour corriger ce problème :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ''' <summary> ''' Elimine le clignotement ''' </summary> ''' <value></value> ''' <returns></returns> ''' <remarks>http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/aaed00ce-4bc9-424e-8c05-c30213171c2c</remarks> Protected Overrides ReadOnly Property CreateParams() As CreateParams Get Dim cp As CreateParams = MyBase.CreateParams Const WS_EX_COMPOSITED As Int32 = &H2000000 cp.ExStyle = cp.ExStyle Or WS_EX_COMPOSITED Return cp End Get End Property 'CreateParams
Vu que l'extension du composant est fonctionnelle, vous pouvez la mettre sur les sources Windows Forms de developpez.com.
De cette manière elle pourra servir à d'autre personne et ne se perdra pas dans la masse de discussion du forum...
http://www.developpez.net/forums/u126285-a386-i1260.gif
C'est une excellente idée :ccool:
Si je puis me permettre une suggestion.
Vu que le suivi d'une tâche ne correspond pas forcement à une plage de valeur de 1 à 100, on peut rendre un peu plus générique la fouchette de valeur de progression.
En remplacant (pour le calcul)
parCode:r1.Width = CSng(r1.Width * Me.Value / 100)
et (pour l'affichage)Code:r1.Width = CSng(r1.Width * ((Me.Value - Me.Minimum) / (Me.Maximum - Me.Minimum)))
parCode:Dim text As String = Me.Value.ToString & "%"
A+, Hervé.Code:Dim text As String = Format(((Me.Value - Me.Minimum) / (Me.Maximum - Me.Minimum)), "## %")