18

私はやや複雑な UserControl を使用しており、Visual Studio 2008 を使用すると、無害な不快感が生じます。Designer でコントロールを開くたびに、Designer によって設定された無害な値の一部 (Size プロパティの初期化) がすぐに変更されます。これらの変更を保存して閉じ、再度開くと、ほとんどの場合、コントロールの別のコンポーネントの初期サイズを無限に変更する必要があると判断されます。幸いなことに、私はどこでも自動サイズ調整を使用しているので、これらの変更は無害ですが、これを使用するのは非常に面倒です。何がうまくいかないのかをどこから始めればよいのか、私にはまったくわかりません。今の私の唯一の考えは、コントロールを開くたびに、デザイナーが自動サイズ変更の結果を初期サイズ フィールドに割り当てているということです。原因/修正に関するアイデアはありますか?

編集:また、アプリケーション設定を使用して、アプリケーションの実行全体で特定のサイズ変更可能な子コンポーネントのサイズを保存していますが、デザイナーがデフォルトのみを使用する必要があることを十分に理解できることを本当に願っています.

4

4 に答える 4

10

たぶんそれが役立つかもしれません:
カスタムUserControlを1つ挿入すると、FormDesigner(WPFなし、Webなどなし)が奇妙な動作をすることに気付きました。
他のコントロール (GroupBox、EditBox、ComboBox) のサイズがランダムに変更されます (私には幅で起こりました)。
サイズ変更を選択したコントロールはランダムに見えますが、vs2010 を再起動しても常に同じです。削除して再挿入すると、デザイナーは別のコントロールを選択してランダム

にサイズ変更します... UserControl のプロパティ AutoScaleMode を「フォント」から「継承」に変更しましたが、再び発生しませんでした。

于 2011-07-25T13:48:37.737 に答える
5

おっしゃるとおり、デザイナーはしばしばプロパティに既定値を追加しようとします。

これをプロパティ宣言の上に追加します。

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]

これにより、デザイナーはこのプロパティを無視するように指示されます。

于 2009-04-27T23:33:50.357 に答える
1

私はやや似たような問題を抱えています。継承したユーザーコントロールでInfragisticsGroupBoxを使用していますが、派生クラスのルックアンドフィールを変更したいと考えています。基本クラスで保護するようにしたので、派生クラスのプロパティを変更できます。しかし、それはそれを保存しません。それを開くたびに、基本クラスの同じ古い値が返されます。

何か案が?

編集:私はそれを理解しました。

上記の答えの1つにさまざまな値を試してみてください。[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]代わりにを使用すると[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]、変更されたプロパティのコードが生成され、必要に応じて機能します。

于 2009-04-28T03:05:10.020 に答える
0

コントロールの DefaultSize プロパティをオーバーライドしてみてください。

MSDN から: DefaultSize プロパティは、最初に作成されたときのコントロールのサイズを表します。

于 2009-04-30T10:01:40.533 に答える