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:


コメント