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.
Since it is on `TextChanged` event handler, you may wanna try to add, a `try...catch` handling during real time edits.

```
try
{
    DateTime myDate = DateTime.ParseExact(textBox1.Text, "yyyy-MM-dd H:m:s",
    System.Globalization.CultureInfo.InvariantCulture);

    TimeChangedHandler(myDate);
}catch( Exception ex )
{
    //Catch exception
}

```

Although a better solution would be placing it on a different event. Does the flexible edit means real time editing? If it is, changing the text from 11 to 22 during that time may cause the format to change, so the `ParseExact` would be better be placed on different event.