Feedback

C# - Eingabe auf nummerische Texteingabe in Textbox prüfen

Veröffentlicht von am 25.07.2009
(5 Bewertungen)
Es gibt zwar das eine oder andere abgewandelte Control was diese Aufgabe schon erfüllt, dennoch, vielleicht braucht man mal die "Quick and Dirty Lösung" für die Eingabe Prüfung.

Um es richtig "Snipped like" zu machen muss hier auch noch der Visual Basic Namespace integriert werden.

Dieses Snipped in das "TextChanged" Ereignis einfügen.
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

Visual Studio Team Foundation Server 2017/2015 (TFS) für Entwickler - Kompakt

Nach Teilnahme an dieser Schulung kennen Sie alle wesentlichen Funktionen des TFS für Entwickler. Sie setzen Software-Entwicklung mit dem Visual Studio Team Foundation Server erfolgreich um.

            Control CTRL = this.ActiveControl;
            if (CTRL != null)
            {
                if (Microsoft.VisualBasic.Information.IsNumeric(CTRL.Text) == false)
                {
                    foreach (Char C in CTRL.Text.ToCharArray())
                    {
                        if (Microsoft.VisualBasic.Information.IsNumeric(C) == false)
                        {
                            TextBox TXTBX = CTRL as TextBox;
                            String MyText = TXTBX.Text;
                            CTRL.Text = MyText.Replace(Convert.ToString(C), String.Empty);
                            TXTBX.Select(TXT_SMTPIN.Text.Length, 0);
                        }
                    }
                }
            }
Abgelegt unter Nummerische Textbox.

3 Kommentare zum Snippet

Christoph1972 schrieb am 28.07.2009:
Hi,
sorry aber ich finde den Snippet nur dirty. Quick & Dirty sieht so vielleicht aus:

void textBox1_KeyUp(object sender, KeyEventArgs e)
{
if (!Double.TryParse(this.Text, out outVar))
{
this.Text = oldValue;
this.Select(this.Text.Length, 0);
}
else
{
oldValue = this.Text;
}
}


Gruß
Christoph
Christoph1972 schrieb am 28.07.2009:
Oh, da habe ich was falsches kopiert! Hier noch mal aus neue:

private Double outVar = 0;
private String oldValue = "";
void textBox1_KeyUp(object sender, KeyEventArgs e)
{
if (!Double.TryParse(textBox1.Text, out outVar))
{
textBox1.Text = oldValue;
textBox1.Select(textBox1.Text.Length, 0);
}
else
{
oldValue = textBox1.Text;
}
}

Martin Dauskardt schrieb am 17.08.2009:
Hallo,

wie wäre es hiermit:

private void textBox_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
// Nur Zahlen und die Rückstelltaste in einer TextBox zulassen
if ("1234567890,\b".IndexOf(e.KeyChar.ToString()) < 0)
{
e.Handled = true;
}
}


Gruß
Martin
 

Logge dich ein, um hier zu kommentieren!