進行状況バーの色を変更しようとしています。これをパスワード強度検証ツールとして使用しています。たとえば、目的のパスワードが弱い場合、進行状況バーは黄色になり、中程度の場合は緑色になります。強い、オレンジ。非常に強い、赤。それはまさにそのようなものです。これがパスワード強度バリデーターの私のコードです。
using System.Text.RegularExpressions;
using System.Drawing;
using System.Drawing.Drawing2D;
var PassChar = txtPass.Text;
if (txtPass.Text.Length < 4)
pgbPass.ForeColor = Color.White;
if (txtPass.Text.Length >= 6)
pgbPass.ForeColor = Color.Yellow;
if (txtPass.Text.Length >= 12)
pgbPass.ForeColor = Color.YellowGreen;
if (Regex.IsMatch(PassChar, @"\d+"))
pgbPass.ForeColor = Color.Green;
if (Regex.IsMatch(PassChar, @"[a-z]") && Regex.IsMatch(PassChar, @"[A-Z]"))
pgbPass.ForeColor = Color.Orange;
if (Regex.IsMatch(PassChar, @"[!@#\$%\^&\*\?_~\-\(\);\.\+:]+"))
pgbPass.ForeColor = Color.Red;
pgbPass.ForeColor = Color.ColorHere
が機能していないようです。何か助け?ありがとう。
ビジュアルスタイルが無効になっていない限り、c#でプログレスバーの色を変更することはできません。IDEが色を変更することを提案しているにもかかわらず、プログレスバーが現在のオペレーティングシステムの視覚スタイルを使用するため、色の変化は観察されません。アプリケーション全体の表示スタイルを無効にすることを選択できます。これを行うには、プログラムの開始クラスに移動し、コードからこの行を削除します
Application.EnableVisualStyles();
または、次のようなカスタムプログレスバーコントロールを使用します http://www.codeproject.com/KB/cpp/colorprogressbar.aspx
アプリケーションから Application.EnableVisualStyles();
を見つけて削除します。
here から多くの例を見つけることができます
赤はエラーやトラブルを示す傾向があります。赤を使用して「強力なパスワード」を示すことを再検討してください。
また、潜在的に多くの一致に基づいて何度も色を更新しているため、色の一貫性は望みどおりにはなりません。
代わりに、各条件にscoreを指定し、合計スコアに基づいて色を選択します。
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;
}
言語によって提供される switch
またはcase
ステートメントよりも簡単な else-if 構文の使用に注意してください。 (特にC/C++はバグのあるソフトウェアになりがちです。)