0

parentmdiform私は C# を使用するアプリケーションを持っています。ここには、すべての子フォームが開かれるMdiContainer フォームという名前のフォームがあります。

このサブメニューからparentmdiformというstudentmasterform名前のフォームが開きます。このフォームからボタンをクリックすると、existingstudent フォームという名前の新しいフォームが開きます。

studentmasterformからもう一度戻りたい場合は、開くExistingstudentformボタンをクリックします。studentmasterformしかし、問題は、親フォームから以前に開いstudentmasterformたものがフォーカスされたり破棄されたりしないことです。つまり、Studentmasterform である同じフォームの 2 つの別個のオブジェクトを取得します。私の中に存在しますparentmdiform

私が望むのは、MDIアプリケーション内の他のフォームをクリックして以前のフォームにアクセスしたときに、同じフォームオブジェクトがフォーカスされるか破棄されることです。

誰でも方法を教えてもらえますか?

4

2 に答える 2

0

の作成を追跡する必要がありstudentmasterformます。そして、それが作成された場合、新しいものを作成しないでください。Keyboard.Focus(oldOne);

PSstudentmasterform.Closedトラックを維持するのに役立つイベントがあります。

于 2012-09-12T09:29:24.533 に答える
0

あなたが何をしたいのか理解していただければ幸いです。まず、フォームがフォーカスを失ったときにフォームを閉じたい場合は、フォーム クラスの「非アクティブ化」イベントを見てください。[MSDN Deactive Event]: http://msdn.microsoft.com/en-us/library/system.windows.forms.form.deactivate.aspx

一度だけ開いたフォームが必要な場合は、「parentmdiform.MdiChildren」をチェックして、MDI From のすべての子を取得できます。フォームに一意の名前を付けることができるため、適切にフォーカスしやすくなります。

よろしく、 C#er

于 2012-09-12T09:34:50.177 に答える