4

環境 :

を作成しましたUser Control。何らかの理由で、このコントロールを別のサイズで使用したいと考えています。User Controlサイズ変更時に私の最初の「テンプレート」を保持するために、コントロール内の別の要素でプロパティAnchorを使用します。

したがって、デザイン時にコントロールを作成するときに、コントロールのサイズを手動で変更し、元の「テンプレート」を保持することができます。

コントロールが作成されると、次のようになります。

イニシャル

そしてサイズ変更後:

サイズ変更

ご覧のとおり、プロパティAnchorはうまく機能します。

  • ラベルと写真は真ん中にとどまります。
  • 「?」左隅にとどまる。

問題 :

私が抱えている問題は、コントロールがリロードされ、最初のサイズとは異なるサイズで作成されたときに、内部のすべての要素が最初の位置に戻ることです:

問題

これが私が達成しようとしていることを行うためのより良い方法であるかどうかはわかりません。設計時にコントロールの追加とサイズ変更を行うことに注意してください。

ありがとうございました。

編集 :

私の問題はデザイナーが原因だと思います。例 : デザイナーにコントロールを追加し、サイズを変更して、ソリューションを実行します。すべてがうまくいっています。しかし、ページのコードに移動してからデザイナーに戻ると、コントロール内の要素が最初の位置に戻りました。

編集2:

わかりました解決策を見つけました。単にUser controla 内のすべての要素を移動しましたPanel説明できない何らかの理由で、完全に機能します。コントロールは同じ場所に留まります。

4

4 に答える 4

3

Panel解決策は、に を追加しUser Controlて「塗りつぶし」にドッキングし、このパネル内に要素を配置することです。説明できない何らかの理由で、デザイナーはサイズ変更されたコントロールの要素の場所を保持します。

于 2013-05-30T18:37:02.657 に答える
3

UserControl の固定、ドッキング、および自動サイズ変更は、ひどく混乱しているようです。UserControl が Form で自動サイズ変更されないことがわかりました。これは、AutoSizeプロパティをに設定することを示唆していますがFalse、それでも問題は解決しませんでした。しかし、あなたのソリューションを試してみると、プロパティのコピーが2 つあることにも気付きましたAutoSize! AutoSizeUserControl デザイナで を に設定しましたFalseが、UserControl インスタンスが追加されたフォーム デザイナでもインスタンスに がAutoSizeあり、その値は異なりました(まだ でしたTrue)。それを設定するとFalseまた、すべてが機能しました(パネルを配置した状態で)。次に、あなたが提案したパネルを削除しましたが、すべてが機能していました。したがって、UserControl デザイナーと、コントロールが使用されるフォーム デザイナーで、UserControl のすべてのプロパティを確認することが秘訣だと思います。それなら、パネルは必要ありません。

于 2014-05-12T17:20:35.917 に答える
0

VS デザイナーで親フォームの Localizable プロパティを false に設定します。これにより、設計時に問題が解決されます。(プロパティを切り替えた後、フォームを保存して閉じ、再度開く)

ローカライズされたアプリケーションが必要な場合は、レイアウトでの作業が終了した後に Localizable プロパティを true に切り替え、VS デザイナーでのワイヤード表現は気にしません。実行時には正しく表示されます。

VS2013でテスト済み

于 2015-01-28T16:10:44.347 に答える