#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
?