Visual Studio 2010 のフォーム デザイナー上での操作により不適切なコードが生成される

現象

Visual Studio 2010 の Windows フォーム デザイナー上で配置済みのコントロールの移動等を行なった場合、その後のビルドでエラーが発生することがあります。
この現象は、フォームのプロパティが以下の設定になっている場合にのみ発生する可能性があります。 

  Localizable : True
  Language : 日本語

原因

コントロールの移動等に伴って Visual Studio が Form*.Designer.cs(.vb) 内に自動生成するソース コードに問題があります。
たとえば、以下のようなコードが自動挿入され、それが原因でビルドエラーになります。 

  this.button1.ImageKey = global::S.App.Resources.Resource_vi.UnitMonths;

本来リソース ファイルに追加されるべきコードが、誤って Form*.Designer.cs(.vb) に追加されてしまうことによって、ビルド エラーが発生します。

解決方法

以下のいずれかの方法によって、現象の発生を抑止することが可能です。
 
(1) ローカライズ対象のコントロールの ImageKey プロパティを明示的に [なし] に設定する

コントロールの ImageKey プロパティが既定で [なし] に設定されている場合であっても、ドロップダウン リストから明示的に [なし] を選択することによって、内部処理が行なわれるため、本件現象が発生しなくなります。

(2) フォームの Localizable プロパティをいったん False にしてから True に戻す

状況

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
プロパティ

文書番号:2845570 - 最終更新日: 2016/09/29 - リビジョン: 1

フィードバック