Laden...

"Text get" von eigener TextBox funktioniert nicht korrekt

Letzter Beitrag vor 14 Jahren 3 Posts 1.130 Views
"Text get" von eigener TextBox funktioniert nicht korrekt

Hallo Zusammen,

auch ich bin einer derjenigen, die sich an einer Textbox mit Eingabebeschränkung versuchen 😉, wozu ich eine eigene Klasse von TextBox abgeleitet habe.
Mein Ziel ist, dass die Textbox in bestimmten Situationen bei Abfrage der Eigenschaft Text einen anderen Text zurück liefert, als eingegeben wurde (in der Texbox selbst soll und darf ein anderer Wert stehen).
Dazu habe ich die Eigenschaft Text überschrieben (hier mal das stark verkürzte Beispiel):

 
    public override string Text
    {
      get
      {
        return "0";
      }
    }

Bei der Initialisierung der Textbox bleibt diese auf dem Bildschirm leer. Wenn ich z.B. "return "1234"" oder "return base.Text" schreibe, dann steht in der Textbox nach Erstinitialisierung eine "0". Bei "return "1234"" oder anderen Zahlenstrings erscheint immer eine 0 und bei "return base.Text" erscheint der korrekte initialisierte Text (aber halt nicht das, was ich eigentlich zurückgeben will).
Wird etwas in meine TextBox eingegeben, funktioniert alles wie gewünscht. Nur die Erstinitialisierung klappt nicht.
Hat jemand eine Idee, wie sich das beschriebene Verhalten erklärt?

Dank und Gruß
isirider

Hallo isirider,

ich wüsste erstmal nicht, warum der Getter die Initialisierung beeinflussen sollte. Dafür ist doch der Setter relevant. Den solltest du dir mal anschauen.

herbivore

Wenn du die Eingabebeschränkungslogik im setter anstatt im getter durchführst sollte es funktionieren.

      public override string Text
        {
            get
            {
                return base.Text;
            }
            set
            {
                base.Text = EingabeBeschraenkungsLogik(value);
            }
        }

        private string EingabeBeschraenkungsLogik(string  str)
        {
            //Irgendwas mit str machen...
            return "0";
        }