3

デザイン ビュー (DV) は優れていると思いますが、コードを自動的に挿入する方法を変更しようとするのInitializeComponentは非常に困難です。そして時々、その自動魔法のコードがプログラムを壊します。

たとえば、DV は、カスタム UserControl のすべてのプロパティを自動的に認識し、すべてのプロパティを の値に割り当てますInitializeComponent。しかし、正しく使用しないと一部のセッターが実行時例外をスローするため、一部のプロパティに値を割り当てたくありません。手動で修正することもできますInitializeComponentが、デザインを変更するたびに、SharpDevelop は機能を再生成します。

また、特定の要因に基づいて Default Constructor にサイズを設定させる別のケースがありますが、InitializeComponentすぐに別の静的な値に設定します。

定義した特定のプロパティに自動的に値を割り当てないように DV に指示するにはどうすればよいですか?

4

1 に答える 1

4

私があなたのシナリオを誤解していない限り、SharpDevelop の動作を変更または再構成しようとして、間違ったツリーを吠えているようです。変更できたとしても、Visual Studio の動作に影響を与えることはありません。それに応じてデザイナー。

代わりに、カスタム コントロールによって公開されたプロパティを[DesignerSerializationVisibility]属性でマークする必要があるようです。これにより、そのプロパティの値をメソッドにシリアル化するInitializeComponent方法がデザイナーに正確に示されます。

次の3 つの値から選択できます。

  • Visibleプロパティの値を初期化コードで永続化する必要があることを示します
  • Hiddenプロパティの値を初期化コードで永続化してはならないことを示します
  • Contentプロパティに割り当てられたオブジェクトのパブリック (非表示ではない) プロパティごとに初期化コードを生成する必要があることを示します

デフォルト値は ですVisible。これにより、可能な限りプロパティの値がシリアル化されます。

于 2011-01-18T16:19:59.790 に答える