DataGridView应该只接受特定的输入格式

时间:2014-04-03 07:17:21

标签: c# datagridview

我在 datagridview 中有一些列,我希望这些列只接受特定的输入格式。

Format: HH-mm-ss.fff, e.g. 11:37:55.378

缺少数字并不重要,但用零填充它们会很不错。

Example: 4:7:11.50 -> 04:07:11.500

如果用户输入某事。完全不同,例如"你好世界"或" ::::::"我想清楚那个领域。

我尝试使用此处编写的 CellFormatting -event http://msdn.microsoft.com/de-de/library/system.windows.forms.datagridview.cellformatting%28v=vs.110%29.aspx,但没有成功。

1 个答案:

答案 0 :(得分:1)

有两种方法可以实现目标。

  1. 如果您想让用户完全按照您提到的格式输入,那么您必须使用具有屏蔽功能的自定义DataGridViewColumn。请参阅此articleMaskedEditColumn article了解相关信息。

  2. 如果验证是在以后而不是用户输入级别进行的,那么您必须使用CellValidating事件。

  3. 示例代码:

    void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
    {
        bool isValid = // Validate whether the entered data is in the required format.
        if (!isValid)
        {
            // clear the cell
            e.Cancel = true;
        }
    }