tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
3677
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Xo-mate Xo-mate ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    213
    Also ich vermute mal, dass es dafür eine ganz einfache lösung gibt, aber ich komm einfach nicht drauf.
    Es ist ein einfaches Textfeld, in dem nur 1 Zahl stehen soll. das mit der einen Zahl hab ich schon duch MaxLength geklöst, aber ich kann trotzdem noch Buchstaben reinschreiben, was das Programm wohl nicht verkraften würde.
     

  2. #2
    Xo-mate Xo-mate ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    213
    Sorry... hab den Beitrag "Textfeld" wohl wegen der sehr genauen Beschreibung übersehen!
     

  3. #3
    zovax zovax ist offline Mitglied Gold
    Registriert seit
    Jun 2004
    Ort
    Koblenz (Rheinland-Pfalz)
    Beiträge
    217
    Mir fallen spontan da jetzt 2 Möglichkeiten ein:

    1. Du überprüfst, wenn der Focus die TextBox verlässt, ob man die Eingabe in eine Zahl konvertieren kann. Wenn nicht, dann wird der Focus wieder auf die TextBox gesetzt und der Benutzer muss etwas anderes eingeben.

    2. Du überprüfst Bei einem dem Keypress Event der TextBox mithilfer der übergebenen Parameter, ob das eingegebene Zeichen eine Zahl ist.
    Wenn dem nicht so ist, dann wird kein Text ausgegeben, wenn doch, wird eben die Zahl in die TextBox geschrieben.
     

  4. #4
    ChristianLattenkamp ChristianLattenkamp ist offline Grünschnabel
    Registriert seit
    Aug 2004
    Beiträge
    4
    Du kannst das KeyPress Event dazu verwenden (siehe Code)

    Dann prüfst du ab, ob was anderes als ne Nummer oder ein Steuerzeichen eingegeben wird (weil die Löschtaste ja noch gehen soll)
    und fängst mit e.Handled=true das Tastenevent ab, damit es nicht mehr das Steuerelement erreicht. Wenn man nun was anderes als eine Nummer oder ein Steuerzeichen eingibt passiert 'nichts'


    Gruß,
    Christian


    private void TextBox_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    if (Char.IsDigit(e.KeyChar) != true && Char.IsControl(e.KeyChar) != true)
    e.Handled=true;
    }
     

  5. #5
    Avatar von MichiStroi
    MichiStroi MichiStroi ist offline Mitglied Gold
    Registriert seit
    Apr 2004
    Ort
    Seebenstein (NÖ)
    Beiträge
    162
    Hi!

    Ich habe beim obigen code folgende Fehlermeldung erhalten:

    D:\C#\TD2005novem\NeuePerson.cs(343): Die Methode 'TD2005novem.NeuePerson.txtWSID_KeyPress(object, System.Windows.Forms.KeyPressEventArgs)' stimmt nicht mit dem Delegat 'void System.EventHandler(object, System.EventArgs)' überein.

    Hat jemand eine Ahnung was da nicht passt?

    Danke
    Michi
     
    Don't hang and loose but run and win!

  6. #6
    Sir_Raven Sir_Raven ist offline Mitglied
    Registriert seit
    Jun 2004
    Beiträge
    19
    Hallo,

    also ich würde beim Text-Changed-Event einfach überprüfen ob alle Zeichen Ziffern sind. Zeichen, die keine Ziffern sind werden einfach gelöscht. Das ist imho die einfachste und effektivste Lösung.

    Gruß
    Sir Raven
     

  7. #7
    Registriert seit
    Nov 2001
    Ort
    Gießen
    Beiträge
    4.091
    Zitat Zitat von Sir_Raven
    Hallo,

    also ich würde beim Text-Changed-Event einfach überprüfen ob alle Zeichen Ziffern sind. Zeichen, die keine Ziffern sind werden einfach gelöscht. Das ist imho die einfachste und effektivste Lösung.

    Gruß
    Sir Raven
    Das denke ich nicht. Die meiner Erfahrung nach optimale und gängigste Lösung ist wirklich das KeyPress-Ereignis. Es ist nicht besonders effektiv, wenn man bei jeder Textänderung den gesamten String durchsucht und überprüft ob es sich um eine Zahl handelt. Obwohl das natürlich auch eine Möglichkeit ist.
    Das Problem mit der Fehlermeldung des Compilers sagt doch übrigens schon alles Wissenswerte aus, was man braucht, um den Fehler selbst zu korrigieren. Grundlegende Kenntnisse der C#-Programmierung vorausgesetzt.
     
    "You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse

  8. #8
    Fox33299729 Tutorials.de Gastzugang
    Die Lösung von ChristianLattenkamp ist wohl die einzig gute und vollständige Lösung...

    Danke!
     

  9. #9
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    Du musst beachten, dass wenn du nur das KeyPress-Event überprüfst, dann kann man immer noch mittels Copy-Paste-Tastenkombination nicht-numerische Zeichen einfügen. Ich würde also noch das TextChanged-Ereignis verwenden und darin nochmal überprüfen, ob der Text wirklich rein numerischer Natur ist.
     
    hihi = -h²

Ähnliche Themen

  1. Nummern Erweiterung
    Von kirsy im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 22.10.08, 16:40
  2. nummern der tasten?
    Von DerSensenmann im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 30.11.05, 19:58
  3. Antworten: 3
    Letzter Beitrag: 25.09.05, 14:03
  4. Nur bestimmte Tasten in einer Component zulassen (Textfeld)
    Von Vatar im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 7
    Letzter Beitrag: 19.04.05, 13:36
  5. Textfeld nur Zahlen zulassen
    Von kevkev im Forum Javascript & Ajax
    Antworten: 12
    Letzter Beitrag: 18.12.04, 15:26