2

BaseForm設定の保存に使用する基本フォームがあります。このフォームにはコントロールがなく、デザイナーで空のフォームとして開かれます。ただし、このフォームを継承すると、デザイナは新しく作成されたフォームをデザイナで開くことを拒否します(デザイナに[表示]ボタンはありません)。何が問題なのか?ありがとう

4

2 に答える 2

3

問題は.csprojファイルにあります。

すべてのフォームには、このようなファイルに署名があります

<Compile Include="Opers\MyForm.cs">
  <SubType>Form</SubType>
</Compile>

要素は、SubTypeこれが実際にはフォームであり、私のファイルではこれが何らかの理由で削除されたことを示しています。

于 2013-01-02T14:53:48.433 に答える
2

可能な限りフォームを継承しないことを強くお勧めします。設定を保存する場合、これは確実に回避できます。FormSettingsSaverクラスなどを作成し、ロード/クローズなどの際に引数としてフォームを渡します。フォームを継承すると、多くの問題が発生する可能性があり、MSは実際には何の作業も行いません。 WindowsFormsおよび/またはDesigner。

編集:継承するフォームを使い続けたい場合は、コメントのreneからのリンクを確認してください。DesignModeをチェックすることで、ほとんどの設計者の問題を回避できます。犯人が見つかるまで、ステートメントをコメントアウトすることもできます。コンストラクター内のすべてのコードと(私が思うに)OnLoadは、フォームがDesignerに表示されたときに実行されるので、開始するのに適した場所があります。

于 2012-12-28T21:39:59.457 に答える