Laden...

Zeiteingabe ala 16:03:23

Erstellt von JES01 vor 18 Jahren Letzter Beitrag vor 18 Jahren 2.887 Views
J
JES01 Themenstarter:in
24 Beiträge seit 2005
vor 18 Jahren
Zeiteingabe ala 16:03:23

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

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo JES01,

unter .NET 2.0 gibt es dafür MaskedTextBox.

herbivore

J
JES01 Themenstarter:in
24 Beiträge seit 2005
vor 18 Jahren

unter .NET 1.1 gibt es da keine Möglichkeit?
Danke soweit trotzdem 😉

B
189 Beiträge seit 2004
vor 18 Jahren

Doch: DateTimePicker und Format auf DateTimePickerFormat.Time stellen.

J
JES01 Themenstarter:in
24 Beiträge seit 2005
vor 18 Jahren

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

49.485 Beiträge seit 2005
vor 18 Jahren

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

1.549 Beiträge seit 2004
vor 18 Jahren

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

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo S.H.-Teichhof,

warum soll da was flackern? Aber ich habe es ausprobiert. Da flackert nichts.

herbivore

1.549 Beiträge seit 2004
vor 18 Jahren

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

Q
992 Beiträge seit 2005
vor 18 Jahren

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!

49.485 Beiträge seit 2005
vor 18 Jahren

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

Q
992 Beiträge seit 2005
vor 18 Jahren

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

49.485 Beiträge seit 2005
vor 18 Jahren

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