Forum: PC-Programmierung Klasse zur Überprüfung von Buchstaben in Textfeld


von Johannes78 (Gast)


Lesenswert?

Hi,

habe folgende Klasse gefunden, um Eingaben von Buchstaben in Textfeldern
systematisch zu unterbinden, ohne für jedes Textfeld ein eigenes 
KeyPress-Event zu behandeln.

Quelle: http://www.hinzberg.net/csharp/csharp/csharp/numtextbox.html
1
public class NumTextBox : TextBox
2
    {
3
        protected override void OnKeyPress(KeyPressEventArgs e)
4
        {
5
            if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
6
                e.Handled = true;
7
8
            base.OnKeyPress(e);
9
        }
10
    }


Meine Frage an Euch: Wo genau muss ich die Klasse verwenden?

In meinem Windows-Forms-Projekt habe ich beispielsweise folgende 
Behandlung des Textfeldes in der Datei "Form1.cs":
1
private void textBox2_TextChanged(object sender, EventArgs e)
2
        {
3
            try
4
            {
5
                zins = Convert.ToDouble(textBox2.Text);
6
                berechne(startkapital, zins, laufzeit);
7
            }
8
9
            catch (FormatException ee)
10
            {
11
            }
12
13
        }
Muss hier der Code eingebunden werden?

Arbeite mit Microsoft Visual Studio c#  2010 Express



Danke fuer eure hilfe.

VG, Johannes

von Fred (Gast)


Lesenswert?

(alles ohne jegliche C#- oder Windows-Forms-Ahnung)

Johannes78 schrieb:
> Muss hier der Code eingebunden werden?

Nein.

Irgendwoanders definierst du die relevante Variable vom Typ TextBox. Und 
den Typ änderst du zu NumTextBox.

von Johannes78 (Gast)


Lesenswert?

OK, danke Dir.

In "Form1.Designer.cs" steht nun:

1
//this.textBox2 = new System.Windows.Forms.TextBox();
2
this.textBox2 = new NumTextBox();


Funktioniert!

VG, Johannes

von Peter II (Gast)


Lesenswert?

kann man nur leicht umgehen wenn es in OnKeyPress steht. Einfach rechte 
maustaste -> einfügen

Ich hätte gedacht das es extra eine Validator Eigenschaft gibt, konnte 
sie gerade aber nicht finden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.