12
votes

C # Barre de progression Changer de couleur

J'essaie de changer la couleur de ma barre de progression, je l'utilise comme validateur de force de mot de passe. Par exemple, si le mot de passe souhaité est faible, la barre de progression devient jaune, si moyenne, puis verte. Fort, orange. Très fort, rouge. C'est juste quelque chose comme ça. Voici mon code pour le validateur de force de mot de passe: xxx

le pgbPass.forecolor = color.Colorhere ne semble pas fonctionner. De l'aide? Merci.


3 commentaires

Utilisez-vous des winforms, ASP.NET, WPF, Silverlight?


Si vous le définissez manuellement, et non dans cette méthode, cela fonctionne-t-il?


Je ne peux pas parler pour ASP.NET, etc., mais pour Winforms et WPF (en utilisant la barre de progression standard), je pense que cela implique de sous-classer le contrôle qui est assez impliqué.


3 Réponses :


5
votes

Rechercher et supprimer Application. EnableVisualstyles (); de votre application.

Vous pouvez trouver de nombreux exemples de ici


0 commentaires

2
votes

rouge a tendance à indiquer des erreurs ou des problèmes - veuillez reconsidérer à l'aide de rouge pour indiquer "mot de passe fort".

De plus, car vous mettez à jour la couleur plusieurs fois en fonction de potentiellement de nombreux matchs, vos couleurs ne seront pas comme étant cohérent que vous le souhaitez. p>

au lieu de cela, donnez à chacune des conditions un score em>, puis choisissez votre couleur en fonction du score total: P>

    int score = 0;

    if (txtPass.Text.Length < 4)
        score += 1;
    if (txtPass.Text.Length >= 6)
        score += 4;
    if (txtPass.Text.Length >= 12)
        score += 5;
    if (Regex.IsMatch(PassChar, @"[a-z]") && Regex.IsMatch(PassChar, @"[A-Z]"))
        score += 2;
    if (Regex.IsMatch(PassChar, @"[!@#\$%\^&\*\?_~\-\(\);\.\+:]+"))
        score += 3;

    if (score < 2) {
       color = Color.Red;
    } else if (score < 6) {
       color = Color.Yellow;
    } else if (score < 12) {
       color = Color.YellowGreen;
    } else {
       color = Color.Green;
    }


1 commentaires

Cette réponse n'est pas la question initiale sur ProgressBar.



26
votes

La couleur de la barre de progression ne peut pas être modifiée en C # à moins que les styles visuels soient désactivés. Bien que l'IDE offre de modifier la couleur que vous observerez sans changement de couleur car la barre de progression prendra le style visuel du système d'exploitation actuel. Vous pouvez choisir de désactiver le style visuel de votre application entière. Pour ce faire, allez à la classe de départ du programme et supprimez cette ligne du code

 Application.EnableVisualStyles();


2 commentaires

NOTE 1: Ceci éliminera également les styles visuels de toutes les autres commandes (par exemple, Button). Note 2: La question concerne les winforms.


S'il s'agit de Winforms, il est réellement possible. Voir cette réponse .