Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Formatierung von Textboxen
King-Malkav
myCSharp.de - Member

Avatar #avatar-2613.jpg


Dabei seit:
Beiträge: 264
Herkunft: Landau

Themenstarter:

Formatierung von Textboxen

beantworten | zitieren | melden

Hi, ich habe für einen Kollegen ein kleines Zeitberechnungsprogramm geschrieben. Mein Problem ist es nur das die Eingabefelder nicht foramtiert sind, sprich er soll nur 4 ziffern eingeben können und das ganze muss dann so aussehen hh:mm

Wie bekomm ich das hin. Das zweite Problem ist, dass ich das ausgerechnete ergebnis in Dezimal benötige, sprich z.B. 9,5 Stunden.

Hier mal den Code:

 
private void rechnen_Click(object sender, System.EventArgs e)
		{
			string start = textBox1.Text.ToString();
			string ende = textBox2.Text.ToString();
			string strabzug = abzug.Text.ToString();
			string tag = "1.00:00:00";

			TimeSpan dtstart = new TimeSpan();
			TimeSpan dtende = new TimeSpan();
			TimeSpan dtberechnung = new TimeSpan();
			TimeSpan dttag = new TimeSpan();
			TimeSpan dtabzug = new TimeSpan();

			dtstart = TimeSpan.Parse(start);
			dtende = TimeSpan.Parse(ende);
			dttag = TimeSpan.Parse(tag);
			dtabzug = TimeSpan.Parse(strabzug);

			if (dtende < dtstart)
			{
				dtberechnung = dtende + dttag - dtstart - dtabzug;
			}
			else
			{
				dtberechnung = dtende - dtstart - dtabzug;
			}
			erg.Text = dtberechnung.ToString();
			
		}

MFG und danke im vorraus
private Nachricht | Beiträge des Benutzers
marsgk
myCSharp.de - Member



Dabei seit:
Beiträge: 1.439
Herkunft: Linz, Austria

beantworten | zitieren | melden

MaskedTextBox ab .Net 2.0
private Nachricht | Beiträge des Benutzers
scarp
myCSharp.de - Member



Dabei seit:
Beiträge: 129
Herkunft: Braunschweig

beantworten | zitieren | melden

Custom Control basteln (von TextBox ableiten)

Oder beim TextChanged Ereignis der TextBox den eingebenen Text überprüfen/verändern/verbieten.


Edit: Mein Vorgänger hat recht! :p
_/_/_/_/ scarp
private Nachricht | Beiträge des Benutzers
King-Malkav
myCSharp.de - Member

Avatar #avatar-2613.jpg


Dabei seit:
Beiträge: 264
Herkunft: Landau

Themenstarter:

beantworten | zitieren | melden

Zitat
Original von scarp
Custom Control basteln (von TextBox ableiten)

Oder beim TextChanged Ereignis der TextBox den eingebenen Text überprüfen/verändern/verbieten.


Edit: Mein Vorgänger hat recht! :p

Wie macht man dass? VS2005 ist hier im Moment nicht verfügbar.

MFG
private Nachricht | Beiträge des Benutzers
scarp
myCSharp.de - Member



Dabei seit:
Beiträge: 129
Herkunft: Braunschweig

beantworten | zitieren | melden


textBox1.TextChanged += new EventHandler(textBox1_TextChanged);

void textBox1_TextChanged(object sender, EventArgs e)
{
   if(textBox1.Text.Length > 4)
   {
           usw......
   }
}
_/_/_/_/ scarp
private Nachricht | Beiträge des Benutzers
King-Malkav
myCSharp.de - Member

Avatar #avatar-2613.jpg


Dabei seit:
Beiträge: 264
Herkunft: Landau

Themenstarter:

beantworten | zitieren | melden

Gut das funzt jetzt, zwar etwas umständlich, aber ok.

Wie schaut das umrechnen in dezimal aus, gibts da eine einfache möglichkeit?

oder muss ich mir dafür eine Funktion schreiben?
private Nachricht | Beiträge des Benutzers
scarp
myCSharp.de - Member



Dabei seit:
Beiträge: 129
Herkunft: Braunschweig

beantworten | zitieren | melden

Das Ergebnis Convert.ToDouble( ergebnis ).

Bzw. auch vorher schon mit double rechnen.

Edit: Oder decimal wie auch immer, das sollte nicht so schwer sein.
_/_/_/_/ scarp
private Nachricht | Beiträge des Benutzers
King-Malkav
myCSharp.de - Member

Avatar #avatar-2613.jpg


Dabei seit:
Beiträge: 264
Herkunft: Landau

Themenstarter:

beantworten | zitieren | melden

Mhh man muss es gar nicht so umständlich machen, Spantime gibt sowas her. Einfach TotalHours() benutzen und man bekommt genau das was ich will.

Trotzdem danke.

MFG
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo King-Malkav,

du meinst vermutlich TimeSpan.

herbivore
private Nachricht | Beiträge des Benutzers
King-Malkav
myCSharp.de - Member

Avatar #avatar-2613.jpg


Dabei seit:
Beiträge: 264
Herkunft: Landau

Themenstarter:

beantworten | zitieren | melden

Zitat
Original von herbivore
Hallo King-Malkav,

du meinst vermutlich TimeSpan.

herbivore

Ja danke. War gestern etwas zeitlich unter druck als ich den Beitrag geschrieben habe, aber ich denke es kam rüber was gemeint war.


MFG
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo King-Malkav,

ja, klar für einen der die Klasse kennt, war es klar. Nur wer die Klasse nicht kennt, kommt vielleicht nicht darauf, die Namensbestandteile umzudrehen. Nur deshalb der Hinweis von mir.

herbivore
private Nachricht | Beiträge des Benutzers