Laden...

IP-Adresse einstellen mit Text Box und Regex

Erstellt von parrain vor 11 Jahren Letzter Beitrag vor 11 Jahren 7.397 Views
P
parrain Themenstarter:in
8 Beiträge seit 2012
vor 11 Jahren
IP-Adresse einstellen mit Text Box und Regex

Hallo zusammen,

ich hatte mal gefragt wie man die IP-Adresse in einen Masked Text box einstellen kann. Ich habe mittlerweile eine meiner Meinung nach gute Lösung gefunden, die ich euch auch gern zeigen möchte. hoffe es könnte euch helfen 🙂

Anstatt einen Masked text Box benutze ich einen einfachen text box, und dazu Regular Expressions wie folgt:


 private void txbRouter_TextChanged(object sender, EventArgs e)
            {
                var r = new Regex(@"\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b");

                if (r.Match(txbRouter.Text).Success)
                {
                    txbRouter.BackColor = Color.White;
                }
                else
                {
                    txbRouter.BackColor = Color.PaleVioletRed;
                }
            }

man braucht nicht überheblich zu sein, wenn einfache frage auftauchen...
Grüße 🙂 👍

MFG

Parrain 🙂

6.911 Beiträge seit 2009
vor 11 Jahren

Hallo parrain,

du könntest dazu auch eine eigenen TextBox erstellen, die das anbietet. Also von TextBox erben und dort die Prüfung einbauen. Dabei kannst du dich von [FAQ] In einer TextBox nur bestimmte Zeichen/Eingaben zulassen inspirieren lassen.

Statt dem if könntest du auch einfach:


txbRouter.BackColor = r.IsMatch(txtRouter.Text) ? Color.White : Color.PaleVioletRed;

verwenden, aber das ist eher Geschmackssache.
Lies dir auch Regex Static vs. Instance Methods durch.

Die so erstellte TextBox kannst du dann gerne in .NET-Komponenten und C#-Snippets veröffentlichen.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

1.346 Beiträge seit 2008
vor 11 Jahren

Geht auch sehr schön ohne selbst eine Regular Expression zu schreiben. Außerdem unterstützt deine Variante nur IPv4, und nicht v6

private void txbRouter_TextChanged(object sender, EventArgs e)
             {
                 IPAddress address;
                 txbRouter.BackColor = IPAddress.TryParse(txtRouter.Text, out address) ? Color.White : Color.PaleVioletRed; 
             } 
P
parrain Themenstarter:in
8 Beiträge seit 2012
vor 11 Jahren

hi pdelvo,

dein Code ist super 😃
danke

MFG

Parrain 🙂