1

メインフォームといくつかのユーザーコントロールがあります。現在、アクティブフォームを使用してユーザーコントロールの1つにアクセスし、ユーザーコントロールを参照しています。しかし、フォーカスが他のウィンドウにある場合、これは困難になります。ユーザー コントロールの新しいインスタンスをインスタンス化したり、アクティブ フォームを使用したりせずに、ユーザー コントロールのインスタンスを取得する方法はありますか?

4

2 に答える 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 に答える