私のwinformsアプリケーションでは、別のフォームからform.ActiveFormを何度も使用しています。これは、フォームの新しいインスタンスが必要ではなく、フォームを前面に移動するか、フォームのコンポーネントを別の方法で設定するためです。ただし、フォームを最小化すると、form.ActiveForm が NullReferenceException を返すことに気付きました。この最小化されたフォームにアクセスするにはどうすればよいですか? その方法はないようです。これを行う別の方法はありますか?
質問する
195 次
3 に答える
1
Application.OpenFormsを使用して、正しいタイプのフォームを見つけます。
foreach (var f in Application.OpenForms)
{
if (f is MyForm)
{
// do something...
break;
}
}
于 2013-01-16T00:20:03.307 に答える
1
最小化されたフォームをプライマリ フォームのフィールドとして保存し、その方法でアクセスします。フォームが最小化されている場合、フォームは「アクティブ」ではありません。ただし、フィールドを使用すると、引き続きアクセスできます。
于 2013-01-16T00:05:18.743 に答える
0
最小化されたフォームへの参照を保存します。必要に応じて、パブリックプロパティを作成することにより、2番目のフォームで保存できます。
public MyForm myForm;
そしてそれを設定します:
MyForm frm = new MyForm();
frm.myForm = (first form reference here);
そして、2番目のフォームは。を使用して最初のフォームを直接参照できますmyForm
。
于 2013-01-16T00:11:24.387 に答える