ボタンをクリックすると別のフォームを開くフォームがあります。新しいフォームが開くと、ループを介して進行状況バーが完成し、フォームを閉じたいと思います。これが、新しいフォームを起動するボタンクリックイベントです。
private void calculateButton_Click(object sender, EventArgs e)
{
if (checkFormComplete())
{
ProgressForm proForm = new ProgressForm();
proForm.Show();
}
}
そして、これがプログレスバーを完成させる新しいフォームのコードです。プログレスバーはそれ自体を閉じる必要があります。
public ProgressForm()
{
InitializeComponent();
for (int i = 0; i < 101; i++)
calculationProgress.Value = i;
this.Close();
}
ただし、これを実行すると、次のようになります。
破棄されたオブジェクトにアクセスできません。オブジェクト名:'ProgressForm'。
そして、デバッガーは私のメインフォームのこの行を指します。
proForm.Show();
理由、またはこれを行うための適切な方法が何であるかを理解できません。新しいフォーム内のcloseステートメントの後にその行はどのように呼び出されますか?