VB2005でPartial Classを使う上での注意

Posted on :| コメント (0)

 防備録して書いておきます。VB2005ではフォームやクラスを複数のクラスに分割記述できるPartialという機能があります。 クラスを分割する場合は良いのですが、フォームを分割記述する場合には注意が必要です。
 分割クラスのフォームデザイナーを表示してしまうと、分割フォームのリソースファイル(resx)が作成され、 コンパイル時にエラーが発生します。

 発生するエラーは

"フォーム.resources" は "Resources" パラメータで 1 度以上指定されました。重複した項目は "Resources" パラメータではサポートされていません。

です。原因は、ひとつのフォームにひとつのリソースファイルしか存在しないのに、 Partialクラスのリソースファイルが生成されることにあります。ぐぐっていろいろ調べてみましたが、 解決策がなかったので自力で解決しました。

■解決法

  1. プロジェクトを一端閉じる
  2. 新たに作成されたリソースファイル(resx)を削除する
  3. プロジェクトファイル(vbproj)をエディタで開く
  4. (2)で削除したリソースファイルの記述を探す
  5. (4)を削除する
  6. コンパイルし直す

リソースの記述例。

<EmbeddedResource Include="frmMainPartial.resx">
    <SubType>Designer</SubType>
    <DependentUpon>frmMain.vb</DependentUpon>
</EmbeddedResource>

誤って正しいリソースの記述を消さないようにしてください。

 しかし、MSもこういう罠はつぶしておいて欲しいものです。

コメント

コメントフォームに記入し投稿してください





Search
最近の記事
カテゴリー
過去の記事
Comments
TrackBacks
Feed
Powered by