Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
IP-Adresse einstellen mit Text Box und Regex
parrain
myCSharp.de - Member



Dabei seit:
Beiträge: 8
Herkunft: Giessen

Themenstarter:

IP-Adresse einstellen mit Text Box und Regex

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 6.778
Herkunft: Waidring

beantworten | zitieren | melden

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!"
private Nachricht | Beiträge des Benutzers
pdelvo
myCSharp.de - Member

Avatar #avatar-3354.png


Dabei seit:
Beiträge: 1.346

beantworten | zitieren | melden

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; 
             } 
private Nachricht | Beiträge des Benutzers
parrain
myCSharp.de - Member



Dabei seit:
Beiträge: 8
Herkunft: Giessen

Themenstarter:

beantworten | zitieren | melden

hi pdelvo,

dein Code ist super :)
danke
MFG

Parrain
private Nachricht | Beiträge des Benutzers