title: DataGridView DateTime column string was not recognized as a valid DateTime DataError
body: <p>I have a <code>DataGridView</code> with a <code>DataTable</code> as its <code>DataSource</code>.  In the <code>DataTable</code>, I have a column with a <code>DataType</code> of <code>DateTime</code>.  The <code>DataTable</code> is successfully filled from <code>SQL Server</code> using a <code>SqlDataAdapter</code>.</p>
  
  <p>I am using:</p>
  
  <pre><code>dgv.Columns(j).DefaultCellStyle.Format = "dd/MM/yyyy HHmm"
  </code></pre>
  
  <p>as the format for the pertinent <code>DataGridViewTextBoxColumn</code> and the data loads fine and is displayed in this desired format correctly.</p>
  
  <p>However, whenever I make valid (or invalid) edits to one of the cells in this column, I always get the error:</p>
  
  <blockquote>
    <p>System.FormatException: String was not recognized as a valid DateTime.
    at System.DateTime.Parse(String s, IFormatProvider provider)... please handle the DataError event.</p>
  </blockquote>
  
  <p>I'm quite surprised that simply specifying the default cell style format isn't enough for the <code>DataGridViewTextBoxColumn</code> to properly nail down the values that the user inputs.  So, my question is: is there some other event/place where it would be appropriate (and necessary) to specify some kind of <code>CellValue = DateTime.TryParseExact(blah blah)</code> correction-statement?  I was thinking of doing so in the <code>CellValidating</code>, <code>CellValidated</code>, or <code>DataError</code> events.  I'd do the testing, but it really feels like I'm missing a simpler solution here.</p>
  
  <p>Thanks!</p>