0

VS 2012 で非常に奇妙な問題が発生しています。winform アプリケーションの設計時に特定のフォームを開くと、デザイナーではなく、アプリケーションが起動されたかのようにログイン フォームが画面に表示されます。

設計時にログインフォームを開くことができます デザインタイムのログインフォーム

しかし、Printという別のフォームを開くと、これが起こりますここに画像の説明を入力

明らかに、私が開こうとしたフォームはデザイナーで開かれておらず、代わりにアプリケーションが起動されたようです。フォームを閉じて操作すると、ビジュアル スタジオがクラッシュします。また、タスク マネージャーでは、プロセスは Devenv.exe です。

obj および bin フォルダーをクリアしようとしましたが、うまくいきませんでした。

4

2 に答える 2

1

_Loadたとえばログインを要求する2番目の形式の-methodにいくつかの初期化子がある場合、 Thingは実行されます。

2.フォームの「_Load」で次の3つのポイントを確認できます。発生した場合は、「_Load」のコードを実行しないでください。

this.GetService(typeof(IDesignerHost)) !=null

System.ComponentModel.LicenseManager.UsageMode == System.ComponentModel.LicenseUsageMode.Designtime

System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv"
于 2013-01-11T10:26:23.083 に答える
0

コードの変更やプロセス名のチェックが不要な場合は、GUI 関連のコードをコンストラクターから Form Shown イベント ハンドラーに移動するだけです。

于 2013-01-11T10:36:09.563 に答える