4

ラベルとテキストボックスを備えたユーザーコントロールがありますが、実行時に常にサイズ変更されている理由を特定できません。スナップショットは次のとおりです。

設計時間

実行時間

ご覧のとおり...オブジェクトのサイズが変更され、間隔が変更されました。私はそれが私のコードと関係があるとは思わない...それはvb.netの設定だけですか?助けてください。

4

4 に答える 4

4

ユーザーコントロール内のテキストボックス、ラベル、ボタンのAnchorプロパティの値を確認してください。おそらく、コンテナの右の境界からの距離を維持するように設定されています(ユーザーコントロール)

于 2012-08-03T09:25:51.623 に答える
4

ユーザーコントロールのAutoScaleModeプロパティを試してみてください。フォントに設定されている場合は、 Noneに変更してください。

場合によっては、コンテナ(フォームの可能性があります)のフォントサイズとタイプはユーザーコントロールとは異なります。ユーザーコントロールのこのプロパティがFontに設定されている場合、新しいフォントタイプとサイズに合わせてサイズを変更しようとします。

于 2012-08-14T18:58:16.950 に答える
4

私は自分の質問に対する答えを見つけました。ユーザーコントロールの代わりに、フォーム(コンテナー)のAutoScaleModeFormからNoneに変更します。みんな、ありがとう!乾杯!

于 2012-09-11T06:42:52.883 に答える
2

私はあなたの問題を再現することができました。私はユーザーコントロールを作成し、サイズを変更しようとして何年も苦労しました。あなたが提案したように、最初に分割コンテナをユーザーコントロールに追加しましたが、サイズを変更することができませんでした。

3,3,3,3のダフォールトマージンはそれと関係があるのではないかと思いました。分割コンテナを最初に追加したとき、それはユーザーコントロールよりも小さく、問題を再現できませんでした。

スプリットコナイナーとユーザーコントロールが同じ幅の場合、マージンがより明確になり、実際にユーザーコントロールの幅が広がりました。

もちろん、あなたの問題はこれとは完全に無関係かもしれませんが、コントロールの幅と比較してマージンを確認することをお勧めします。余白は完全に必要かもしれませんが、少なくともこれで問題が解決するかどうかを確認するためだけに、余白を削除してみませんか。または、分割コンテナの幅が、各辺からマージンを差し引いた後のユーザーコントロールの幅よりも小さいことを確認します。たとえば、ユーザーコントロールの幅が300で、分割コンテナのマージンが3,3,3,3の場合、分割コンテナが300-3-3=294よりも小さいことを確認します。

単なる理論ですが、実際には役に立たないかもしれません。

于 2012-08-17T15:56:16.797 に答える