我用c#编写了一个窗体,并带有一些控件。当我们离开的时候,有一个事件被调用。在某些情况下,当框中的值无效时,它会抛出异常(如果bool变量为true)。现在的问题是,当重点放在这个控件上,我想关闭表单时,将会调用离开该控件的事件并抛出一个异常,这是catch语句中的catch,并且不会抛出异常,但在此之后onclose事件是不会打电话的,我不能关闭表格。我该怎么办?在c中连续执行两个事件#
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;
}
}
}
请提供你必须作出明确问题的 –
代码是如此巨大的代码! – fasadat
只提供与此问题相关的代码 –