Отображение элемента управления редактированием не может ввести ни одного символа в datagridviewcell при форматировании ячейки

#c# #cell-formatting

#c# #форматирование ячейки

Вопрос:

Я разрабатываю форму окна с datagridview .

Я хочу, чтобы пользователь вводил дату в datagridviewcell .

Сначала я использую этот код для форматирования ячейки

 private void EditingControl_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (!char.IsControl(e.KeyChar))
        {
            Control editingControl = (Control)sender;
            if (!Regex.IsMatch(editingControl.Text   e.KeyChar, pattern))
                e.Handled = true;
        }
    }
     private string pattern = "^[0-9]{0,2}$";
    private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        dataGridView1.EditingControl.KeyPress -= EditingControl_KeyPress;
        dataGridView1.EditingControl.KeyPress  = EditingControl_KeyPress;
    }
  

Но ячейка может позволить пользователю вводить только 3 целых числа.
Поэтому я использую другой шаблон для форматирования ячейки

 private void EditingControl_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (!char.IsControl(e.KeyChar))
        {
            Control editingControl = (Control)sender;
            if (!Regex.IsMatch(editingControl.Text   e.KeyChar, pattern))
                e.Handled = true;
        }
    }
    private string pattern = "^([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0]?[1-9]|[1][0-2])[./-]([0-9]{4}|[0-9]{2})$";

    private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        dataGridView1.EditingControl.KeyPress -= EditingControl_KeyPress;
        dataGridView1.EditingControl.KeyPress  = EditingControl_KeyPress;
    }
  

Но я больше не могу вводить что-либо в ячейке, используя этот шаблон.

Как отформатировать ячейку, которая может позволить пользователю вводить дату в таком формате yyyy-MM-dd ?