Question: Here is my code:

```
private void textBox1_TextChanged(object sender, EventArgs e)
{
     DateTime myDate = DateTime.ParseExact(textBox1.Text, "yyyy-MM-dd H:m:s",
     System.Globalization.CultureInfo.InvariantCulture);

     TimeChangedHandler(myDate);
} 

```

If I delete 1 number from hours then it works fine, but if I delete both numbers e.x. I want to change from 11 to 22 then it crashes. So how do I make the form `"yyyy-MM-dd H:m:s"` work for all cases? Thanks!

Answer: 
If you want to indicate that the date/time is invalid, use `DateTime.TryParseExact` to *check* whether or not it's valid, without throwing an exception. Use the return value (true/false) to determine the validity.

Basically, you shouldn't expect that the value is always valid while the user is editing - just like while I'm editing code, it won't always be syntactically correct.

You need to check that it's valid when you actually *use* the value - and until then, probably just add a visual marker to indicate that it's invalid.

You may want to think about whether your `TimeChangedHandler` (whatever that is) should implicitly fire whenever the date/time provided is valid, or whether your UI should provide a more explicit "use this value" action (e.g. a button).

Also, consider using a `DateTimePicker` as a friendlier way of selecting a date and time.

Finally, I'd personally avoid using a pattern of `H:m:s`... the date part looks like ISO-8601-like, so I'd suggest using `HH:mm:ss` for complete validity - it would be odd (IMO) to see a value of `2015-07-27 7:55:5` for example.
You may benefit from using DateTime.TryParse method to check what of two formats your date is :

```
private void textBox1_TextChanged(object sender, EventArgs e)
{
     DateTime myDate = default(DateTime);
     if(!DateTime.TryParseExact(textBox1.Text, "yyyy-MM-dd H:m:s",
     System.Globalization.CultureInfo.InvariantCulture, out myDate))
       DateTime.TryParseExact(textBox1.Text, "yyyy-MM-dd HH:mm:ss",
         System.Globalization.CultureInfo.InvariantCulture, out myDate)     

     if(myDate == default(DateTime)) return; // or
      // throw new ArgumentException("your text here");

     TimeChangedHandler(myDate);
} 

```