質問

しばらく前に

A、Iはにflowlayoutpanelを取得しようとしてについては、この質問を掲載コンテナの上部にドッキングするとき、適切に自動サイズ調整。私は何を達成しようとしていたことは(左から右へ)、横がフォームの上部エッジにまたがって、DataGridViewのはflowlayoutpanel以下の利用可能なスペースの残りの部分を取ってflowlayoutpanel設定にしました。私はトラブルそれが必要な方法を自動サイズ調整するflowlayoutpanelの高さプロパティを取得を抱えていました。ポストされた答えは、私は、達成しようとしていた何のために完全に働いた偉大だった...

一人で十分に残すことができません。

は、私は今、さらに一歩進み、ユーザーコントロールにflowlayoutpanelをラップしようとしています。私はこれを行うことはもはや適切にその高さのサイズを変更するflowlayoutpanelを引き起こすことを、しかし、発見しました。

ここで美しく動作します最初のレイアウトは、います:

FlowLayoutPanel1 (Autosize = true, Dock = Top)
  ComboBox1
  ComboBox2
  ComboBox3
DataGridView1 (Dock = Fill)

そして、ここではそれがユーザーコントロールに包まれflowlayoutpanelである。

UserControl (Autosize = true, Dock = Top)
  FlowLayoutPanel1 (Autosizse = true, Dock = Fill)
    ComboBox1
    ComboBox2
    ComboBox3
DataGridView1 (Dock = Fill)

フォームのサイズが変更されたときに何らかの理由で、flowlayoutpanelが適切にその高さを変更しません。これは再現することが非常に簡単です。ああまた、FlowLayoutPanelの内容は、だけではなくコンボボックス何もすることができます。

役に立ちましたか?

解決

私は何の問題があることは、あなたがそれの高さを自動サイズ調整することの試みをオーバーライドするFlowLayoutPanel1.Dock = Fillを持っているということだと思います。

修正は(あなたが前にそれを持っていたとして)セットFlowLayoutPanel1.Dock = Topに思われ、その後、ユーザーコントロールのサイズを変更するFlowLayoutPanel1.Resizeイベントを処理します。基本的に、手動でUserControl.Sizeと同期FlowLayoutPanel1.Sizeを維持しようとしている。

はそれを行うには、よりスマートな方法があるかもしれないが、うまくいけば、それは正しい道にあなたを取得します...

他のヒント

あなたのユーザーコントロールは、幅のセットを持っていますか?確かにdesigner.csで見てください。それがない場合は、そのプロパティをリセットする必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top