私は、フローレイアウトパネルのコントロールの上部に水平に配置された一連のコンボボックスと、コントロールの残りのすべてのスペースを占めるフローレイアウトパネルのすぐ下のデータグリッドビューで構成される UserControl に取り組んでいます。すべてのドロップダウンを簡単に非表示にする必要があるため、Orientation == Horizontal の SplitContainer、SplitContainer.Panel1 の flowlayoutpanel、SplitContainer.Panel2 の datagridview を使用します。
コントロール階層は次のとおりです。
SplitContainer1
SplitContainer1.Panel1
FlowLayoutPanel1
ComboBox1
ComboBox2
ComboBox3
SplitContainer1.Panel2
DataGridView1
flowlayoutpanel は水平方向に配置され、水平方向のスペースが限られているため、flowlayoutpanel の WrapContents プロパティは True であり、コントロールが狭すぎてすべてのドロップダウンが 1 つの行に収まらない場合に、ドロップダウンが次の行に折り返されます。
私が抱えている問題は、flowlayoutpanel がそのコンテンツを次の行に折り返すときに、Height プロパティがそれに応じて変化しないことです。flowlayoutpanel のラップされた行はクリップされ、それに応じて分割コンテナー パネルの高さが強制的に大きくならないでください。FlowLayoutPanel.Resize イベントを処理して、ラップされたコンテンツに対応するために SPlitContainer.SplitterDistance プロパティを拡大および縮小しようとしましたが、コンテンツがラップされても FlowLayoutPanel.Height プロパティは変更されません。私は困惑しています。FlowLayoutPanel は壊れていますか? コンテンツのラッピングに関係なく、FlowLayoutPanel.Height が常に同じままである場合、FlowLayoutPanel の親コンテナーのサイズを変更するにはどうすればよいですか?
ありがとう