Textbox.Databindigs.Add() führt zu Exception



  • Hallo an alle

    Habe ein kleines Problem.
    Ich habe in meinem Programm ein Textfeld (Textbox) und will
    das der User nur Zahlen eintragen kann.

    Im Internet habe ich gelesen das dies mit DataBindings möglich ist und zudem
    auch Beispiele gefunden.
    Bei mir funktioniert es irgendwie nicht. Was mache ich falsch?

    public int nZahl = 0;
    ............
    txtHour.DataBindings.Clear();
    txtHour.DataBindings.Add("Text", this, "nZahl");
    

    Fehler: System.ArgumentException. An die Eigenschaft oder Spalte nZahl für die DataSource kann nicht gebunden werden.

    Ich verwende VS2005 .NET

    Danke!!!



  • Was Du vorhast, hat mit DataBinding nichts zu tun. DataBinding regelt die Anbindung eines Controls an eine Datenquelle (meinst eine Datenbank oder XML-Datei).

    Für Deinen Zweck ist es am besten, wenn Du das 'Validating'-Event abfängst und dort den Inhalt der TextBox testest:

    private void textBox1_Validating(object sender, CancelEventArgs e) {
        int result;
        if (!int.TryParse(textBox1.Text, out result))
            e.Cancel = true;
    }
    

    In diesem Code darf der Benutzer die TextBox erst verlassen, wenn er eine gültige Zahl eingegeben hat. Eventuell sollte man noch eine zusätzliche Abfrage auf eine leere Eingabe einfügen. 'int.TryParse' schaut hierbei übrigens, ob die Eingabe eine gültige Zahl ist.



  • Ok, super. Danke!
    Ich werde es gleich versuchen. (Wird bestimmt klappen).
    thx 👍



  • Aufpassen! Kickst Du auf ein MenuItem oder einen ToolBarButton ( wenn der Cursor in der TextBox steht ) greift das Event nicht. Da musst Du explizit nochmal Form.Validate aufrufen.


Anmelden zum Antworten