2010-02-25 57 views
2

如果用户在DataGridView的单元格中输入无效文本,我想阻止用户离开该单元格,并在该单元格中显示错误图标,并在工具提示中显示错误消息。看来,通常错误图标不会出现,直到单元格不再处于编辑模式。我发现一个example如何让错误图标在仍处于编辑模式时出现,但当我将鼠标悬停在其上时,工具提示不会显示。如何在用户编辑DataGridView单元格时向用户显示错误?

我使用Windows 7,但我无法得到它在XP中工作,要么,所以我们可以排除这一可能性。

任何人都可以找出例子缺什么,或者建议一个替代方法,它会产生相同的结果?

要获得示例工作,您需要创建自己的表单,复制/粘贴示例代码,添加using System.Drawing.Drawing2D;,并自己分配事件处理程序。

回答

1

我建议你看看IDataErrorInfo接口

例如看到下面的post

+0

谢谢!今天我会玩这个。 – Ecyrb 2010-03-01 16:10:43

+0

我不确定这会对我有用。文档毫无价值。我检查了这篇文章,甚至是博客上的一个答案,但这并没有帮助我理解如何使用我的'DataGridView'正确工作。我看不到我如何使用它来防止用户输入无效的DateTime(如null或“Blarg”)。对于普通的字符串列,它将不会验证,直到细胞失去焦点后,这会破坏我的目标。也许我只是不知道如何正确使用它。任何与'DataGridView'相关的其他例子都会受到欢迎。 – Ecyrb 2010-03-01 18:36:56

1

它有点黑客-Y,而只是将这样的事情您的验证方法的末尾将工作(假设你的观点不绑定到一些数据,以便EndEdit中()提交一个新值的数据结构或某事):

if (e.Cancel) 
{ 
    myView.EndEdit(); 
    myView.BeginEdit(true); 
} 
相关问题