【发布时间】:2017-05-20 17:58:08
【问题描述】:
在我的项目中,我以编程方式创建新表单并将其显示为对话框,但始终出现异常:
System.ObjectDisposedException: '无法访问已处置的对象。'
我尝试使用 ClosingEvent,但这在我的项目中不起作用。
这是我的代码:
private void productNameTextBox_KeyDown(object sender, KeyEventArgs e)
{
using (Form productDialog = new Form())
{
productDialog.FormClosing += new FormClosingEventHandler(productDialog_FormClosing);
productDialog.ShowDialog();
}
}
private void productDialog_FormClosing(object sender, FormClosingEventArgs e)
{
productDialog.Hide();
productDialog.Parent = null;
MessageBox.Show("Triggered"); // Showed on close
e.Cancel = true; //hides the form, cancels closing event
}
当我关闭“X”上打开的对话框并再次尝试打开它时,我得到了异常。为什么 e.Cancel 不起作用,但会显示消息框。 我做错了什么?
【问题讨论】: