1

ビジネスを運営するために使用する「コア」システムがあり、一度に約 15 ~ 18 人が使用しています。プログラムは VB.NET で書かれており、約 165 のフォームがあります。

ユーザーがプログラムを実行すると、ログインするように求められます。ログインに成功すると、「メイン」フォームにいくつかのメニュー (顧客、サプライヤー...) が表示されます。そこから、「メイン」の上に別のフォームを開くメニューをクリックできます (「メイン」フォームは、他の画面にいるユーザーに関連する情報を表示するため、バックグラウンドで表示される必要があります)。

私たちが抱えている問題は、ユーザーが「コア」システム (Outlook、Word、Chrome、実際には何でも) を使用しているときに他のプログラムを開いており、別のプログラムに切り替えてからシステムに戻ると、「メイン」のみが表示されることです。フォームと、上に開いている他のフォームが消えます。これを回避する方法は、開いている他のプログラムに戻り、他のすべてのプログラムが最小化されるまでウィンドウの右上隅にある最小化ボタンをクリックすることです。これにより、「コア」システムのみが表示されたままになります。しかし、これはすべてのユーザー (私と他の開発者を含む) にとって迷惑になりつつあり、スタッフを満足させないようにするために、この問題を解決する必要があります :)

この問題の解決に役立つアドバイスや正しい方向への指針をいただければ幸いです。さらに情報が必要な場合はお気軽にお問い合わせください。

4

2 に答える 2

1

ChildFormからを作成しているようですMainFormが、ChildForm自体は で表示されていMe.ShowDialog()ます。おそらく試す必要があるのは、 からフォームを表示し、 を親としてMainForm渡すことです。MainFormこれにより、フォームがその親と一番上に結び付けられたままになります。例えば:

childForm.showDialog(Me)

はどこMeですかMainFormこれはそのメソッドのドキュメントです。

これは重要な部分です:

所有者の種類: System.Windows.Forms.IWin32Window

モーダル ダイアログ ボックスを所有する最上位ウィンドウを表す IWin32Window を実装するオブジェクト。

それは理にかなっていますか?

于 2013-01-07T11:08:55.737 に答える
0

ダイアログを表示するようにコードを変更すると、子フォームを閉じるまでメインの実行が保持されるように、コードの動作が少し変わります

ただし、子として表示のみを使用できます(ダイアログではありません)

childForm.show (Me)

メインフォームをクリックするたびにその子全体が表示されることを除いて、これは何も変更しません。

于 2013-01-07T12:00:44.437 に答える