2011-09-21 17 views
8

DevExpress LayoutControlをWinFormsフォーム内に設定しました。 LayoutControlは、フォームがサイズ変更されたときにhorizontallyのサイズを変更するか、少なくともLayoutControlをユーザーがサイズ変更できるようにします。DevExpressコントロールのサイズを変更する方法

私はDevExpressのページの提案で、SizeConstraintsTypeプロパティを"default"に変更しました。私はまた、親の左右にコントロールを固定しようとしました。私はMaxSizeを増やすことにも取り組んだ。誰もこれを行う方法を知っていますか?

私は基本的に(HTMLで)<table width=100%>に相当することをしたいと思います。誰もこれを行う方法を知っていますか?

ありがとうございます!

答えて

13

Developer's Express LayoutControlは非常に素晴らしいツールですが、いくつかの問題があります。

LayoutControl自体は、フォーム、ユーザーコントロール、パネルコントロールなどのコンテナコントロール内に細かくドッキングするだけでサイズを変更する必要があります。多くの場合、レイアウトコントロールはフォーム/コントロールに置いた最初のものの1つです。その中にはレイアウトが含まれているためです。したがって、レイアウトコントロールの「ドック」プロパティを「塗りつぶし」に設定するか、ドッキングするフォーム/コントロールの目的のエッジに設定する必要があります。

ここでは、レイアウトコントロールの内部ロジックがその外部ディメンションまたは内部アイテムを制限する可能性があり、そのレイアウトアイテムが特定のサイズになりたい場合、「gotcha」が存在することがあります。これは実際には聞こえるよりも簡単です。

たとえば、レイアウトコントロール内にラベルコントロールがあるとします。デフォルトでラベルコントロールは、テキストの幅に合わせてサイズが変更されます。次に、レイアウトコントロールは、レイアウトアイテムのサイズを縮小/拡大することによって、ラベルの所望のサイズに適応しようとする。だから、この1つのラベルコントロールは、あなたのレイアウトコントロールのサイズを変えてしまうかもしれません。私は、あなたのレイアウトデザインを台無しにする最も一般的なコントロールであるため、例としてラベルを選択しました。

これを解決する方法は、ラベルの "AutoSizeMode"プロパティを "vertical"(テキストの折り返しが必要な場合)または "none"(レイアウトコントロールが必要とするサイズにしたい場合は "none" )。これによりレイアウトコントロールが自由になり、幅の決定が行われます。

また、(DevExpress 'SplitterControlを使用して)エンドユーザーがレイアウトコントロールのサイズを変更できるようにしている場合、レイアウトは再び最適なサイズになり、SplitterControlがこの最適サイズから離れるようにしません他のコントロールは(グリッド、ツリー、リストなどのように)簡単にサイズを変更できます。この場合、レイアウトコントロールに "EmptySpaceItem"を追加すると、サイズ変更時に空のスペースを埋めることができます。 EmptySpaceItemをレイアウトに追加するには、Visual Studioデザイナのレイアウトコントロールを右クリックし、[レイアウトのカスタマイズ]を選択します。カスタマイズダイアログには、EmptySpaceItemを含むレイアウトコントロールにドラッグできる項目のリストがあります。

+0

+1、しばらくそれを使用すると、トリックを学ぶことができます。 ASP.net Webフォームライブラリに分岐してFormLayoutを使用すると、悪化します。そのことはサイジングトリックを学ぶ悪夢でした。 – Mohgeroth

関連する問題