编辑控件显示无法在单元格格式化中键入datagridviewcell中的任何字符

时间:2016-10-19 06:35:26

标签: c# cell-formatting

我正在开发一个带有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的日期的单元格?

0 个答案:

没有答案