Moin Leute,
wie bekomme ich das am besten hin, das der User eine Zeitangabe ala 16:03:23 machen kann? Ich hatte mir drei Textboxen vorgestellt, in denen dann einfach weiter gesprungen wird, falls in der aktuellen Textbox 2 Ziffern eigegeben wurden. Es sollen die Doppelpunkte schon da stehen und der User soll die Zeit dann einfach so durch weg eingeben können, ohne Tab oder Enter drücken zu müssen.
Danke
Hallo JES01,
unter .NET 2.0 gibt es dafür MaskedTextBox.
herbivore
Doch: DateTimePicker und Format auf DateTimePickerFormat.Time stellen.
Danke,
aber gibt es die Möglichkeit, dass man ohne pfeil nach rechts zu drücken einfach durchschreiben kann UND dass man den Dropdown Pfeil weg (nicht disabled) bekommt?
Das wäre gut - vielleicht gibt es ja auch noch was ganz anderes?
Gruss
Hallo JES01,
selber machen geht natürlich auch noch, z.B. in einer normalen TextBox auf TextChanged reagieren und dort zunächst alle Zeichen entfernen, die keine Ziffer sind und anschließend nach je 2 Ziffern einen Doppelpunkt einfügen (dabei muss man auch auf SelectionStart und -Length achten).
herbivore
ich glaube das die lösung mit TextChanged nicht flüssig laufen würde sie würde warscheinlich flackern ich hätte dir empfohlen eine Kombination aus TextChanged und selbst zeichnen zu verwennden du zeichnest die Punkte selbst machst den Rest aber mit TextChanged
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
Hallo S.H.-Teichhof,
warum soll da was flackern? Aber ich habe es ausprobiert. Da flackert nichts.
herbivore
ich gebe zu ich war ein wenig verschnell und habe es jetzt auch auf einem anderen rechner ausprobiert und da läuft es ruckelfrei ich habe garnicht drangedacht das ich es zuerst auf einer 250 MHz maschine getestet habe(da ruckelt fast alles 😉 )
also sorry wegen dem falschen arlarm
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
Bei Text-Changed wird meines Erachtens der Text aber erst gerendert und gemalt und dann das Text-Changed-Event ausgelöst!
Das Problem hatte ich auch schon mal!
Hallo Quallo,
das ist schon richtig. Aber zum einen sind die heutigen Rechner so schnell, dass man das nicht sieht und außerdem würde es ja wenn, dann quasi nur bei Fehleingaben blinken.
herbivore
Naja, das ist eine Sache, die ich schon öfter an der TextBox bemängelt habe!
Interessant wäre wenn man eine Text-Box mit Before-Text-Changed hätte. Oder wenn man das Property Text selber implementieren könnte.
Aber naja, schade...
Nochmal was anderes: Wenn ich innerhalb des Text-Changed-Event den Text änder, wird dann nochmal Text-Changed aufgerufen? Wenn ja: potentieller Stack-Overflow(die meisten werden wissen, was ich meine.) durch eine endlose Rekursion.
Grüße Christoph
Hallo Quallo,
Endlosrekursion ist möglich, aber nicht, wenn der zu setzende Text mit dem bereits gesetzten übereinstimmt. Die Implementierung des set-Accessors ist quasi:
public override void set_Text(string value)
{
if (value != base.Text) {
base.Text = value;
}
}
herbivore