2016-11-30 2 views
-1

Ich habe eine einfache Anwendung mit MS TextBox Steuerelement erstellt und DataBinding wurde auf die TextBox getan. Wenn ich versuche, den double Wert in die TextBox eingeben, dann bekam ichStackOverFlowException: Wert ist entweder zu klein oder zu groß für int 32 in MS TextBox

„Stackoverflow: Wert entweder zu groß oder zu klein für Int32 ist“.

Hier ist mein Code:

Form1.cs

DataBinding db = new DataBinding(); 
this.dataBindingBindingSource.DataSource = db; 
this.textBox1.DataBindings.Add("Text", dataBindingBindingSource, "Number", true, DataSourceUpdateMode.OnPropertyChanged); 

DataBinding.cs (My Own Klasse)

class DataBinding : INotifyPropertyChanged 
{ 
    private int number=4; 
    public int Number 
    { 
     get 
     { 
      return number; 
     } 
     set 
     { 
      number = value; 
     } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 

    private void NotifyPropertyChanged() 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs("Number")); 
     } 
    } 
} 

jemand kann mir sagen, ob, wie Können wir diese Ausnahme überwinden?

Antwort

0

Die Number Eigenschaft, die Sie definiert haben, ist vom Typ int, aber Sie haben eine Zahl in das gebundene Textfeld eingegeben, das entweder zu klein oder zu groß ist, um in ein int zu passen. Daher kann es nicht in der Number Eigenschaft festgelegt werden. Daher löst der Code eine Ausnahme aus.

Was würden Sie davon erwarten? Wir können Ihnen nicht sagen, wie Sie es beheben können. Einige mögliche Optionen sind:

  • Zunahme der Bit-Breite des Feldes/Eigenschaft durch eine Art größer als int Auswahl, wodurch sichergestellt wird, dass größere Werte können
  • behandeln die Ausnahme und rund dargestellt werden/gestutzt den eingegebenen Wert von der Benutzer so, dass sie eine in int
  • add Validierungscode passt (dh bevor Daten laufen würde Bindung versucht wird), um den Benutzer vor Eingabe eines Wertes zu verhindern, die zu groß ist in eine int
passend
Verwandte Themen