【发布时间】:2014-01-26 07:08:06
【问题描述】:
我用 C# 编写了一个带有一些控件的表单。在我们离开时调用的其中一个控件上有一个事件。在某些情况下,当框中的值无效时,它会抛出异常(如果 bool 变量为真)。现在的问题是,当焦点在此控件上并且我想关闭表单时,将调用离开此控件的事件并引发异常,该异常是 catch 语句中的 catch 并且不会引发异常,但在该 onclose 事件之后不会打电话,我无法关闭表格。我该怎么办?
private void SetSelectedDateTime(CancelEventArgs e, bool raiseException)
{
try
{
var newval = UpdateDateTime();
var rawText = Text.Replace("/", "").Replace(":", "").Replace("_", "").Replace(" ", "");
if ((Text.Contains(PromptChar) && rawText != string.Empty) || (!Text.Contains(PromptChar) && newval == null))
{
throw new SgException(ControlMessages.InvalidDate);
}
else
{
selectedDateTime = AdjustDateTime(selectedDateTime);
if (newval != selectedDateTime)
{
selectedDateTime = newval;
UpdateText(newval);
OnSelectedDateTimeChanged();
EndEditBindings();
}
}
}
catch (Exception)
{
e.Cancel = true;
if (raiseException)
{
this.Focus();
throw;
}
}
}
【问题讨论】:
-
请提供您必须明确问题的代码
-
只提供与这个问题相关的代码