Ano*_*ous 2 c# visual-studio-2010 winforms
我有一个表单,在单击按钮时打开另一个表单.当新表单打开时,我通过循环完成了一个进度条,然后我希望表单关闭.这是启动新表单的按钮单击事件.
private void calculateButton_Click(object sender, EventArgs e)
{
if (checkFormComplete())
{
ProgressForm proForm = new ProgressForm();
proForm.Show();
}
}
Run Code Online (Sandbox Code Playgroud)
以下是完成进度条的新表单的代码,该进度条应该自行关闭.
public ProgressForm()
{
InitializeComponent();
for (int i = 0; i < 101; i++)
calculationProgress.Value = i;
this.Close();
}
Run Code Online (Sandbox Code Playgroud)
但是,运行这个我得到:
无法访问已处置的对象.对象名称:'ProgressForm'.
调试器指向我的主窗体的这一行:
proForm.Show();
Run Code Online (Sandbox Code Playgroud)
我不确定我理解为什么,或者正确的方法是什么.在我的新表单中的close语句之后如何调用该行?
表单试图在它显示之前关闭自己(因为你在构造函数中有你的代码).输入您的进度条形码,然后Close()在FormLoad或FormShown事件中调用.例:
private void ProgressForm_Shown(object sender, EventArgs e)
{
for (int i = 0; i < 101; i++)
{
calculationProgress.Value = i;
Application.DoEvents(); // force the form to update itself
}
this.Close();
}
Run Code Online (Sandbox Code Playgroud)