Très bonne explication chrismonoye
![]()
Très bonne explication chrismonoye
![]()
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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...
![]()
C'est une excellente idée
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)
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part r1.Width = CSng(r1.Width * Me.Value / 100)
et (pour l'affichage)
Code : Sélectionner tout - Visualiser dans une fenêtre à part r1.Width = CSng(r1.Width * ((Me.Value - Me.Minimum) / (Me.Maximum - Me.Minimum)))
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim text As String = Me.Value.ToString & "%"
A+, Hervé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim text As String = Format(((Me.Value - Me.Minimum) / (Me.Maximum - Me.Minimum)), "## %")
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager