メインフォームといくつかのユーザーコントロールがあります。現在、アクティブフォームを使用してユーザーコントロールの1つにアクセスし、ユーザーコントロールを参照しています。しかし、フォーカスが他のウィンドウにある場合、これは困難になります。ユーザー コントロールの新しいインスタンスをインスタンス化したり、アクティブ フォームを使用したりせずに、ユーザー コントロールのインスタンスを取得する方法はありますか?
質問する
307 次
2 に答える
2
プロパティを介して、ユーザー コントロールをホストしているフォームにアクセスできます。Application.OpenForms
後で、次のようなフォームからユーザー コントロールのリストを取得できます。
if ((Application.OpenForms["yourForm"] as Form1) != null)
{
var YourUserControlList =
(Application.OpenForms["yourForm"] as Form1)
.Controls.OfType<YourUserControl>()
.ToList();
}
はyourForm
フォームの ID でありYourUserControl
、ユーザー コントロールのクラス名です。
于 2012-12-06T07:41:12.737 に答える
0
おそらく、1 つのフォームで実際にイベントを公開し、別のフォームにハンドラーを追加して、最初のフォームがイベントを発生させたときにトリガーできるようにする必要があります。このようにして、一方が他方を参照または関連付ける正式な方法があります。
于 2012-12-06T07:42:42.703 に答える