1

2 つのパネルが並んでいるエクスプローラー ビューのようなものとして最も簡単に説明できるフォームを作成しようとしています (左側にフォルダーのリスト、右側に選択したフォルダー内のファイルが表示されます)。

左側のパネルは固定幅で、フォームの左側にドッキングされています。正常に動作し、ここでは関係ありません。

右側のパネルは左側のパネルの右側に配置され、フォームの残りの部分を埋め、上、左、下、右に固定されているため、フォームのサイズが変更されてもフォーム全体を占有し続けます左側のパネルが占めている部分を除いて。また、コンテンツが大きすぎて収まらない場合は常に、スクロールバーが自動的に表示されるようにAutoScroll設定されています。Trueその部分もうまく機能します。

右側のパネルにさまざまなタイミングでさまざまなものを表示したいのでPanel、コンテナーとして通常のパネルを作成し、さまざまな種類のコンテンツごとに子パネルを使用しています。一度に表示できるのは、これらの子パネルの 1 つだけです。

私が (時々) 右側のパネルに表示したいものの 1 つは、エクスプローラーの「アイコン」ビューに非常によく似たものです。つまり、たくさんのファイル アイコンFlowLayoutPanelです。左から右に配置されますが、必要に応じて新しい行に折り返されます。

これはまさに aFlowLayoutPanelが設計されたものだと思っていたでしょうが、動作させることができません! [親で利用可能なすべてのスペースを使用するようにのDockプロパティを設定します。が収まらないため、親に水平スクロールバーが表示されます。FlowLayoutPanelFillPanelPanelFlowLayoutPanel

Panelこれは、 を含む親のサイズが固定されていないためであると考えられますFlowLayoutPanel(フォームに合わせて拡大および縮小するため)。FlowLayoutPanel好きなだけ広く。ただし、これはあまり役に立ちません。

FlowLayoutPanel親と同じ幅にする必要があることを説得する方法はありますPanelか?

4

1 に答える 1

0

まず、FLP のWrapContentsオプションが有効になっていることを確認してください。

すでにそれを行っている場合、私の推測では、FLP の親パネルAutoScrollオプションを有効にしていることが原因であると思われます。これは、FLP の望ましいラッピング動作と互換性がありません。すべてを 1 行に収めることができない場合を除き、FLP は折り返されません。親 Panel をスクロールできるようにすることで、FLP は常にすべてを 1 行に収めることができます。親パネルをAutoScrollオフにすると、機能するはずです。

于 2012-07-26T00:05:45.647 に答える