0

我正在使用带有如下代码的 ErrorProvider:

private void textBoxLocation_Validating(object sender, CancelEventArgs e)
{
  if (!ValidateLocation())
  {
    e.Cancel = true;
  }
}

这个特定的文本框是为了让用户输入某个路径,方法是直接将其键入文本框,或者按下打开 FileDialog 的“浏览”按钮,然后将路径复制到文本框。

问题是,当用户直接在未验证的文本框中键入内容时,e.Cancel = true;会调用它,这会使文本框不会失去焦点,但是我什至无法按下浏览按钮来选择路径。不仅如此,我什至无法关闭程序。如何解决这个问题?

4

1 回答 1

0

大概您正在设置ErrorProviderin的文本ValidateLocation。在这种情况下,你真的不想在e.Cancel这里使用它,因为它本来就是为了做它正在做的事情。防止控制失去焦点。

这在输入错误的情况下是有意义的。

所以,简而言之,你在这里使用它是没有意义的e.Cancel

于 2013-12-11T15:46:23.057 回答