フォームのインスタンスが開いているかどうかを確認し、既存のインスタンスを開いてテキスト ボックスを更新するかどうかを確認したい場合は、新しいインスタンスを作成します。
検索した後、次のことを見つけました: Windowsフォームが既に開いているかどうかを確認し、開いている場合は閉じるには?
私が試した受け入れられた答えから
try
{
foreach (Form fm in Application.OpenForms)
{
if (fm is Form2)
{
Form2 n1 = (Form2)Application.OpenForms["Form2"];
n1.textBox1.Text = textBox1.Text;
break;
}
else
{
Form2 n1 = new Form2();
n1.textBox1.Text = textBox1.Text;
n1.Show();
}
}
}
catch (InvalidOperationException)
{
}
それとは別に、このコードはInvalidOperationException
(私はすでにキャッチしています)をスローします。インスタンスが既に存在する場合でも新しいインスタンスを作成するため、コードは機能しません。
私は何を間違っていますか?