FlowLayoutPanelに配置されたコントロールは、WrapContentsプロパティで折り返し設定をすることができます。
折り返し設定をすることで、FlowLayoutPanelのサイズに合わせてコントロールが配置されます。
下記は、折り返しの設定をする例です。
[折り返しあり]のチェック状態に合わせて折り返しの設定を行います。
VBの例
' フォームロード時の処理 Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load '境界の外にコントロールが表示された場合に対応できるよう 'スクロールバー自動表示の設定をする FlowLayoutPanel1.AutoScroll = True End Sub ' 「コントロールの配置方向」ラジオボタンのチェック変更時の処理 Private Sub rdoFlowDirection_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles rdoTopDown.CheckedChanged, rdoRightToLeft.CheckedChanged, rdoLeftToRight.CheckedChanged, rdoBottomUp.CheckedChanged If rdoLeftToRight.Checked = True Then '左から右 FlowLayoutPanel1.FlowDirection = FlowDirection.LeftToRight ElseIf rdoTopDown.Checked = True Then '上から下 FlowLayoutPanel1.FlowDirection = FlowDirection.TopDown ElseIf rdoRightToLeft.Checked = True Then '右から左 FlowLayoutPanel1.FlowDirection = FlowDirection.RightToLeft Else '下から上 FlowLayoutPanel1.FlowDirection = FlowDirection.BottomUp End If End Sub ' [折り返しあり]チェック変更時の処理 Private Sub chkWrap_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkWrap.CheckedChanged If chkWrap.Checked = True Then '★★★コントロールの折り返しを有効にする★★★ FlowLayoutPanel1.WrapContents = True Else '★★★コントロールの折り返しを無効にする★★★ FlowLayoutPanel1.WrapContents = False End If End Sub
C#の例
// フォームロード時の処理 private void Form2_Load(object sender, EventArgs e) { // 境界の外にコントロールが表示された場合に対応できるよう // スクロールバー自動表示の設定をする flowLayoutPanel1.AutoScroll = true; } // [コントロールの配置方向」ラジオボタンのチェック変更時の処理 private void rdoFlowDirection_CheckedChanged(object sender, EventArgs e) { if (rdoLeftToRight.Checked == true) { // 左から右 flowLayoutPanel1.FlowDirection = FlowDirection.LeftToRight; } else if (rdoTopDown.Checked == true) { // 上から下 flowLayoutPanel1.FlowDirection = FlowDirection.TopDown; } else if (rdoRightToLeft.Checked == true) { // 右から左 flowLayoutPanel1.FlowDirection = FlowDirection.RightToLeft; } else { // 下から上 flowLayoutPanel1.FlowDirection = FlowDirection.BottomUp; } } // [折り返しあり]チェック変更時の処理 private void chkWrap_CheckedChanged(object sender, EventArgs e) { if (chkWrap.Checked == true) { // ★★★コントロールの折り返しを有効にする★★★ flowLayoutPanel1.WrapContents = true; } else { // ★★★コントロールの折り返しを無効にする★★★ flowLayoutPanel1.WrapContents = false; } }
Please follow and like us:
コメント