我在 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,但没有成功。
答案 0 :(得分:1)
有两种方法可以实现目标。
如果您想让用户完全按照您提到的格式输入,那么您必须使用具有屏蔽功能的自定义DataGridViewColumn
。请参阅此article或MaskedEditColumn article了解相关信息。
如果验证是在以后而不是用户输入级别进行的,那么您必须使用CellValidating
事件。
示例代码:
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;
}
}