主婦と.NETと犬のぶろぐ

奥様 と プログラム と お犬様 の 楽しい日常

目次

Blog 利用状況

ニュース

書庫

日記カテゴリ

FlowLayoutPanel(System.Windows.Forms.FlowLayoutPanel)

このコントロールをコード上から操作することって、そんなに無いと思うんですが、
無理やりプログラム上で使ってみました。

実行画像ですが、FlowLayoutPanel 内のコントロールの配置方向を矢印で書いてみました。
コントロールは矢印の始点から終点の方向に向かって配置されます。
Z 型になっている矢印があるのは、WrapContents が True になっているからです。

■参考文献
FlowLayoutPanel コントロール
FlowLayoutPanel クラス

■実行画像
ButtomUp 下から上へ
FlowLayoutPanel ButtomUp
LeftToRight 左から右へ
FlowLayoutPanel LeftToRight
RightToLeft 右から左へ
FlowLayoutPanel LeftToRight
TopDown 上から下へ
FlowLayoutPanel LeftToRight
WrapContents が False の場合の ButtomUp
FlowLayoutPanel ButtomUp,WrapContents=False

Public Class FlowLayoutPanelTest

Private m_flowPanel As FlowLayoutPanel Private Sub FlowLayoutPanelTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' SplitContainer の配置 Dim split As SplitContainer = New SplitContainer split.Dock = DockStyle.Fill split.BorderStyle = BorderStyle.Fixed3D Me.Controls.Add(split)
' RadioButton の配置 Dim rdoBottomUp As RadioButton = New RadioButton() rdoBottomUp.Text = FlowDirection.BottomUp.ToString() rdoBottomUp.Location = New Point(10, 10) AddHandler rdoBottomUp.CheckedChanged, AddressOf RadioButtons_CheckedChanged split.Panel1.Controls.Add(rdoBottomUp) Dim rdoLeftToRight As RadioButton = New RadioButton() rdoLeftToRight.Text = FlowDirection.LeftToRight.ToString() rdoLeftToRight.Location = New Point(10, 30) AddHandler rdoLeftToRight.CheckedChanged, AddressOf RadioButtons_CheckedChanged split.Panel1.Controls.Add(rdoLeftToRight) Dim rdoRightToLeft As RadioButton = New RadioButton() rdoRightToLeft.Text = FlowDirection.RightToLeft.ToString() rdoRightToLeft.Location = New Point(10, 50) AddHandler rdoRightToLeft.CheckedChanged, AddressOf RadioButtons_CheckedChanged split.Panel1.Controls.Add(rdoRightToLeft) Dim rdoTopDown As RadioButton = New RadioButton() rdoTopDown.Text = FlowDirection.TopDown.ToString() rdoTopDown.Location = New Point(10, 70) AddHandler rdoTopDown.CheckedChanged, AddressOf RadioButtons_CheckedChanged split.Panel1.Controls.Add(rdoTopDown) ' CheckBox の配置 Dim chkWrapContents As CheckBox = New CheckBox chkWrapContents.Text = "WrapContents" chkWrapContents.Location = New Point(10, 90) chkWrapContents.Checked = True AddHandler chkWrapContents.CheckedChanged, AddressOf WrapContents_CheckedChanged split.Panel1.Controls.Add(chkWrapContents)
' FlowLayoutPanel 及び 内部の Button の配置 Me.m_flowPanel = New FlowLayoutPanel Me.m_flowPanel.Size = New Size(split.Panel2.Width - 10, split.Panel2.Height - 10) split.Panel2.AutoScroll = True For index As Integer = 0 To 9 Dim btn As Button = New Button() btn.Text = (index + 1).ToString() Me.m_flowPanel.Controls.Add(btn) ' このコントロールで強制的に折り返す。という設定 'If index = 4 Then Me.m_flowPanel.SetFlowBreak(btn, True) Next split.Panel2.Controls.Add(Me.m_flowPanel) End Sub
' 選択された RadioButton により、FlowLayoutPanel の FlowDirection を決める Private Sub RadioButtons_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Dim directionText As String = DirectCast(sender, RadioButton).Text Select Case directionText Case FlowDirection.BottomUp.ToString() Me.m_flowPanel.FlowDirection = FlowDirection.BottomUp Case FlowDirection.LeftToRight.ToString() Me.m_flowPanel.FlowDirection = FlowDirection.LeftToRight Case FlowDirection.RightToLeft.ToString() Me.m_flowPanel.FlowDirection = FlowDirection.RightToLeft Case FlowDirection.TopDown.ToString() Me.m_flowPanel.FlowDirection = FlowDirection.TopDown End Select End Sub
' コントロールを折り返すか否かの設定 Private Sub WrapContents_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Me.m_flowPanel.WrapContents = DirectCast(sender, CheckBox).Checked End Sub End Class

投稿日時 : 2007年1月18日 10:22

Feedback

# cctThFykgi 2011/12/12 19:24 http://www.d4women.net/clomid.php

Not bad post, leave it at my bookmarks!...

# MDXmtaWeVztstDGfhNu 2011/12/16 1:00 http://www.yacanna.com/

Author, Shoot yourself a knee..!

# iMlEROREekkYjkjgLIE 2012/01/07 14:02 http://www.luckyvitamin.com/p-30350-devita-natural

I`m so grateful that you enlightened me and the most important thing that it happened in time. Just think, I have been using the internet for six years already but it`s the first time I`ve ever heard about it!...

タイトル  
名前  
Url
コメント