ac#3.5アプリのフォームで奇妙な動作が発生しています。ボタンをクリックすると、form1が非表示になり、新しいform2が作成され、form2が表示されます。Form1には、form2が閉じたときにトリガーされるイベントメソッドも含まれています。Form1内のコードは次のとおりです。
Form2 form2;
void button1_Click(object sender, EventArgs e)
{
this.Hide();
form2 = new form2();
form2.Show();
form2.FormClosed += new FormClosedEventHandler(form2_FormClosed);
}
void form2_FormClosed(object sender, FormClosedEventArgs e)
{
form2.Dispose();
form2 = null;
this.Show();
}
さて、私の問題は、form2を開くと(form1を非表示にする)、またはform2を閉じると(form1を表示する)、新しいフォームが画面に一瞬表示されてから非表示になることがあるということです。それはまだ開いていて、タスクバーからクリックしてもう一度表示できますが、ウィンドウ自体は他の開いているウィンドウの後ろに送信されます。開いているように見えますが、すぐに最小化されます。
この動作はランダムに発生します。フォームが問題なく開いたり非表示になったりすることもありますが、別のウィンドウにフォーカスが失われることもあります。focus()、activate()、およびtopmostを使用してみましたが、突然の非表示を防ぐことができませんでした。
なぜこれが起こっているのか、そしてそれを修正する方法を誰かが知っていますか?
ありがとう。