Visual Studio のデザイナが自動生成するコードを制御する

コントロールやコンポーネントのプロパティに対する自動生成のコードは、
System.ComponentModel.DesignerSerializationVisibilityAttribute
コンストラクタに渡す System.ComponentModel.DesignerSerializationVisibility 列挙値で制御する。


該当のプロパティに設定するコードを出力する場合は、Visible を指定する。
ちなみに属性を指定しないプロパティの場合も、 Visible と同様の扱いとなる。
出力されるコードの例はこんな感じ。

this.userControl1.TestValue = "abc";

該当のプロパティに設定するコードを出力したくない場合は、Hidden を指定する。
これはコードが出力されない。


最後の Content は、どう説明したらいいんだろう。
該当のプロパティに設定するのではなくて、該当のプロパティのプロパティに対して設定する。
わかりにくいので、サンプルコードの結果を見たら雰囲気掴めるかな?
System.ComponentModel.DesignerSerializationVisibilityAttribute のサンプルコードから出力されたコードは、

this.userControl1.Dimensions.FormSize = new System.Drawing.Size(150, 150);
this.userControl1.Dimensions.Location = new System.Drawing.Point(51, 43);

これは、デザイナでコントロールの位置やサイズを変更する度に設定される値が変わる。