C# IP-Adresse in text Box einstellen

Parrain

Cadet 3rd Year
Registriert
Sep. 2012
Beiträge
51
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 zeigen möchte. es ist auch einfacher als was man mir empfohlen hat, und hoffe es könnte euch helfen :)

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

Code:
 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;
                }
            }

Grüße :)
 
Code:
private void OnTbTextChanged( object sender, EventArgs e )
{
    IPAddress address;
    TextBox tb = (TextBox)sender;
    bool success = IPAddress.TryParse( tb.Text, out address );
    tb.BackColor = success ? Color.White : Color.PaleVioletRed;
}

Nur um andere davor zu bewahren ebenfalls reguläre Ausdrücke dafür zu benutzen :)
 
Zuletzt bearbeitet:
hi holy,

ich fand dein Code besser :) habe noch was verbessert :evillol: ;)

Code:
private void txbRouter_TextChanged(object sender, EventArgs e)
             {
                 IPAddress address;
                 txbRouter.BackColor = IPAddress.TryParse(txtRouter.Text, out address) ? Color.White : Color.PaleVioletRed;
             }

Grüße
 
Finde holy's Schreibweise übersichtlicher.

Klar kann man Parrain's verkürzten Code bei privaten Projekten verwenden, aber in einem größeren Programmierprojekt in einer produktiven Umgebung würde ich meinem Kollegen den Kopf abreißen, wenn er mir solche Stolperfallen stellt. Erinnert mich ein wenig an Obfuscating ;)
 
:lol:

Smagjus es gibt mit Sicherheit noch was komplizierter ;-)

Grüße
 
Zurück
Oben