16

既存のWindowsフォームをVS2012WinFormプロジェクトに追加しようとすると、「アイテムの追加/既存...」に移動してから、インポートします:MyForm.cs、MyForm.designer.cs、MyForm.resx

これは、以前のバージョンのVSで機能していました。(名前空間を調整する必要があるかもしれません。)

VS2012では、MyForm.designer.csとMyForm.resxは、Designerの目的でフォームに関連付けられなくなりました。つまり、MyFormの下にネストされているのではなく、ソリューションエクスプローラーに個別のファイルエントリとして表示されます。MyFormをダブルクリックすると、エラーメッセージのない空のフォーム(コントロールなし)が表示されます。プロジェクトはコンパイルされ、正常に実行されます。

ただし、同じファイルをプロジェクトにドラッグアンドドロップ(名前空間の調整/名前変更)すると、フォームファイルは互いに適切に関連付けられ、Designerはフォームを正常に開きます。

私は今解決策を持っていますが、誰かがこれらのアプローチの違い、それが機能しない場合に追加/既存のアイテムオプションを持つことのポイントは何ですか、そしてファイルをドラッグするときに実際に何が起こっているのかを強調できますか?どのファイル(おそらく.csproj?)がフォームファイルの結合を担当しますか?以前のバージョンのVSでは両方の方法で機能するため、これはバグであると推測できますか?

ありがとう。

4

2 に答える 2

27

問題を再現しようとしましたが、成功しませんでした。

と呼ばれるフォームをインポートするとしますYourFormName。次にYourFormName.cs、プロジェクトにのみ追加する必要があります。残りの部分(YourFormName.designer.csおよびYourFormName.resx)は自動的に追加されます。

私のステップ:

  1. VS2012でWinFormsプロジェクト(私の場合は.Net Frameworkは4)を作成します(重要な場合は11.0.05727.1)
  2. プロジェクトを右クリック->追加->既存のアイテム...
  3. コントロール付きのWinFormを検索します(VS2010 for .NET Framework 4および3.5で作成された2つのフォームを追加しました)
  4. 多少の遅延(約30〜40秒)がありましたが、どちらの場合も「Designer」は期待どおりに機能し、既存のすべてのコントロール/コードビハインドをロードしました
于 2013-02-25T09:23:01.413 に答える
4

csファイルをインクルードするだけwaitです。他のファイルを追加する必要はありません。これは機能します。

project>追加に移動しexisting item てフォームmyform.csファイルを選択し、ボタンをクリックしaddます。これにより、ファイルがプロジェクトにインポートされます。

于 2015-01-15T13:40:52.697 に答える