我使用的ErrorProvider代码如下所示:
private void textBoxLocation_Validating(object sender, CancelEventArgs e)
{
if (!ValidateLocation())
{
e.Cancel = true;
}
}这个特定的textBox意味着用户可以输入特定的路径,直接输入到textBox,或者按“浏览”按钮打开FileDialog,然后将路径复制到textBox。
问题是,当用户直接向文本框输入未经验证的内容时,就会调用e.Cancel = true;,从而使textBox不会失去焦点,但我甚至不能按浏览按钮来选择路径。不仅如此,我甚至不能关闭程序。怎么解决这个问题呢?
发布于 2013-12-11 15:46:23
您大概是在用ValidateLocation设置ErrorProvider的文本。在这种情况下,您真的不想在这里使用e.Cancel,因为它的目的就是做它正在做的事情。保持控制不失去焦点。
在输入错误的场景中,这将是有意义的。
因此,简单地说,在这里使用e.Cancel是没有意义的。
https://stackoverflow.com/questions/20523488
复制相似问题