添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
public ref class FlowLayoutPanel : System::Windows::Forms::Panel, System::ComponentModel::IExtenderProvider
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Windows.Forms.Docking(System.Windows.Forms.DockingBehavior.Ask)]
public class FlowLayoutPanel : System.Windows.Forms.Panel, System.ComponentModel.IExtenderProvider
[System.Windows.Forms.Docking(System.Windows.Forms.DockingBehavior.Ask)]
public class FlowLayoutPanel : System.Windows.Forms.Panel, System.ComponentModel.IExtenderProvider
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Windows.Forms.Docking(System.Windows.Forms.DockingBehavior.Ask)>]
type FlowLayoutPanel = class
    inherit Panel
    interface IExtenderProvider
[<System.Windows.Forms.Docking(System.Windows.Forms.DockingBehavior.Ask)>]
type FlowLayoutPanel = class
    inherit Panel
    interface IExtenderProvider
Public Class FlowLayoutPanel
Inherits Panel
Implements IExtenderProvider
Object
FlowLayoutPanel

下列範例示範如何在控件上 FlowLayoutPanel 設定 FlowDirection WrapContents 屬性。 將程式代碼貼到 Form1 原始程式檔中。 如果您的專案包含名為 Form1 的檔案。Designer.cs 或 Form1。Designer.vb,從專案中移除該檔案。 您可能需要按下 方案總管 中的 [ 顯示所有檔案 ] 按鈕,以查看設計工具檔案。

#using <System.Windows.Forms.dll> #using <System.dll> #using <System.Drawing.dll> using namespace System; using namespace System::Windows::Forms; public ref class Form1 : public System::Windows::Forms::Form private: void wrapContentsCheckBox_CheckedChanged( System::Object^ sender, System::EventArgs^ e) this->flowLayoutPanel1->WrapContents = this->wrapContentsCheckBox->Checked; private: void flowTopDownBtn_CheckedChanged(System::Object^ sender, System::EventArgs^ e) this->flowLayoutPanel1->FlowDirection = FlowDirection::TopDown; private: void flowBottomUpBtn_CheckedChanged(System::Object^ sender, System::EventArgs^ e) this->flowLayoutPanel1->FlowDirection = FlowDirection::BottomUp; private: void flowLeftToRight_CheckedChanged(System::Object^ sender, System::EventArgs^ e) this->flowLayoutPanel1->FlowDirection = FlowDirection::LeftToRight; private: void flowRightToLeftBtn_CheckedChanged( System::Object^ sender, System::EventArgs^ e) this->flowLayoutPanel1->FlowDirection = FlowDirection::RightToLeft; #pragma region " Windows Form Designer generated code " public: Form1(void) // This call is required by the Windows Form Designer. InitializeComponent(); // Add any initialization after the InitializeComponent() // call // Form overrides dispose to clean up the component list. protected: ~Form1() if (components != nullptr) delete components; private: System::Windows::Forms::FlowLayoutPanel^ flowLayoutPanel1; private: System::Windows::Forms::CheckBox^ wrapContentsCheckBox; private: System::Windows::Forms::RadioButton^ flowTopDownBtn; private: System::Windows::Forms::RadioButton^ flowBottomUpBtn; private: System::Windows::Forms::RadioButton^ flowLeftToRight; private: System::Windows::Forms::RadioButton^ flowRightToLeftBtn; private: System::Windows::Forms::Button^ button1; private: System::Windows::Forms::Button^ button2; private: System::Windows::Forms::Button^ button3; private: System::Windows::Forms::Button^ button4; // Required by the Windows Form Designer private: System::ComponentModel::IContainer^ components; // NOTE: The following procedure is required by the Windows Form // Designer // It can be modified using the Windows Form Designer. // Do not modify it using the code editor. private: [System::Diagnostics::DebuggerNonUserCode] void InitializeComponent() this->flowLayoutPanel1 = gcnew System::Windows::Forms::FlowLayoutPanel(); this->button1 = gcnew System::Windows::Forms::Button(); this->button2 = gcnew System::Windows::Forms::Button(); this->button3 = gcnew System::Windows::Forms::Button(); this->button4 = gcnew System::Windows::Forms::Button(); this->wrapContentsCheckBox = gcnew System::Windows::Forms::CheckBox(); this->flowTopDownBtn = gcnew System::Windows::Forms::RadioButton(); this->flowBottomUpBtn = gcnew System::Windows::Forms::RadioButton(); this->flowLeftToRight = gcnew System::Windows::Forms::RadioButton(); this->flowRightToLeftBtn = gcnew System::Windows::Forms::RadioButton(); this->flowLayoutPanel1->SuspendLayout(); this->SuspendLayout(); // flowLayoutPanel1 this->flowLayoutPanel1->Controls->Add(this->button1); this->flowLayoutPanel1->Controls->Add(this->button2); this->flowLayoutPanel1->Controls->Add(this->button3); this->flowLayoutPanel1->Controls->Add(this->button4); this->flowLayoutPanel1->Location = System::Drawing::Point(47, 55); this->flowLayoutPanel1->Name = "flowLayoutPanel1"; this->flowLayoutPanel1->TabIndex = 0; // button1 this->button1->Location = System::Drawing::Point(3, 3); this->button1->Name = "button1"; this->button1->TabIndex = 0; this->button1->Text = "button1"; // button2 this->button2->Location = System::Drawing::Point(84, 3); this->button2->Name = "button2"; this->button2->TabIndex = 1; this->button2->Text = "button2"; // button3 this->button3->Location = System::Drawing::Point(3, 32); this->button3->Name = "button3"; this->button3->TabIndex = 2; this->button3->Text = "button3"; // button4 this->button4->Location = System::Drawing::Point(84, 32); this->button4->Name = "button4"; this->button4->TabIndex = 3; this->button4->Text = "button4"; // wrapContentsCheckBox this->wrapContentsCheckBox->Location = System::Drawing::Point(46, 162); this->wrapContentsCheckBox->Name = "wrapContentsCheckBox"; this->wrapContentsCheckBox->TabIndex = 1; this->wrapContentsCheckBox->Text = "Wrap Contents"; this->wrapContentsCheckBox->CheckedChanged += gcnew System::EventHandler( this, &Form1::wrapContentsCheckBox_CheckedChanged); // flowTopDownBtn this->flowTopDownBtn->Location = System::Drawing::Point(45, 193); this->flowTopDownBtn->Name = "flowTopDownBtn"; this->flowTopDownBtn->TabIndex = 2; this->flowTopDownBtn->Text = "Flow TopDown"; this->flowTopDownBtn->CheckedChanged += gcnew System::EventHandler( this, &Form1::flowTopDownBtn_CheckedChanged); // flowBottomUpBtn this->flowBottomUpBtn->Location = System::Drawing::Point(44, 224); this->flowBottomUpBtn->Name = "flowBottomUpBtn"; this->flowBottomUpBtn->TabIndex = 3; this->flowBottomUpBtn->Text = "Flow BottomUp"; this->flowBottomUpBtn->CheckedChanged += gcnew System::EventHandler( this, &Form1::flowBottomUpBtn_CheckedChanged); // flowLeftToRight this->flowLeftToRight->Location = System::Drawing::Point(156, 193); this->flowLeftToRight->Name = "flowLeftToRight"; this->flowLeftToRight->TabIndex = 4; this->flowLeftToRight->Text = "Flow LeftToRight"; this->flowLeftToRight->CheckedChanged += gcnew System::EventHandler( this, &Form1::flowLeftToRight_CheckedChanged); // flowRightToLeftBtn this->flowRightToLeftBtn->Location = System::Drawing::Point(155, 224); this->flowRightToLeftBtn->Name = "flowRightToLeftBtn"; this->flowRightToLeftBtn->TabIndex = 5; this->flowRightToLeftBtn->Text = "Flow RightToLeft"; this->flowRightToLeftBtn->CheckedChanged += gcnew System::EventHandler( this, &Form1::flowRightToLeftBtn_CheckedChanged); // Form1 this->AutoScaleBaseSize = System::Drawing::Size(5, 13); this->ClientSize = System::Drawing::Size(292, 266); this->Controls->Add(this->flowRightToLeftBtn); this->Controls->Add(this->flowLeftToRight); this->Controls->Add(this->flowBottomUpBtn); this->Controls->Add(this->flowTopDownBtn); this->Controls->Add(this->wrapContentsCheckBox); this->Controls->Add(this->flowLayoutPanel1); this->Name = "Form1"; this->Text = "Form1"; this->flowLayoutPanel1->ResumeLayout(false); this->ResumeLayout(false); #pragma endregion using System; using System.Windows.Forms; public class Form1 : System.Windows.Forms.Form private void wrapContentsCheckBox_CheckedChanged( System.Object sender, System.EventArgs e) this.FlowLayoutPanel1.WrapContents = this.wrapContentsCheckBox.Checked; private void flowTopDownBtn_CheckedChanged( System.Object sender, System.EventArgs e) this.FlowLayoutPanel1.FlowDirection = FlowDirection.TopDown; private void flowBottomUpBtn_CheckedChanged( System.Object sender, System.EventArgs e) this.FlowLayoutPanel1.FlowDirection = FlowDirection.BottomUp; private void flowLeftToRight_CheckedChanged( System.Object sender, System.EventArgs e) this.FlowLayoutPanel1.FlowDirection = FlowDirection.LeftToRight; private void flowRightToLeftBtn_CheckedChanged( System.Object sender, System.EventArgs e) this.FlowLayoutPanel1.FlowDirection = FlowDirection.RightToLeft; #region " Windows Form Designer generated code " public Form1() : base() //This call is required by the Windows Form Designer. InitializeComponent(); //Add any initialization after the InitializeComponent() call //Form overrides dispose to clean up the component list. protected override void Dispose(bool disposing) if (disposing) if (components != null) components.Dispose(); base.Dispose(disposing); private System.Windows.Forms.FlowLayoutPanel FlowLayoutPanel1; private System.Windows.Forms.CheckBox wrapContentsCheckBox; private System.Windows.Forms.RadioButton flowTopDownBtn; private System.Windows.Forms.RadioButton flowBottomUpBtn; private System.Windows.Forms.RadioButton flowLeftToRight; private System.Windows.Forms.RadioButton flowRightToLeftBtn; private System.Windows.Forms.Button Button1; private System.Windows.Forms.Button Button2; private System.Windows.Forms.Button Button3; private System.Windows.Forms.Button Button4; //Required by the Windows Form Designer private System.ComponentModel.IContainer components; //NOTE: The following procedure is required by the Windows Form Designer //It can be modified using the Windows Form Designer. //Do not modify it using the code editor. [System.Diagnostics.DebuggerNonUserCode] private void InitializeComponent() this.FlowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); this.Button1 = new System.Windows.Forms.Button(); this.Button2 = new System.Windows.Forms.Button(); this.Button3 = new System.Windows.Forms.Button(); this.Button4 = new System.Windows.Forms.Button(); this.wrapContentsCheckBox = new System.Windows.Forms.CheckBox(); this.flowTopDownBtn = new System.Windows.Forms.RadioButton(); this.flowBottomUpBtn = new System.Windows.Forms.RadioButton(); this.flowLeftToRight = new System.Windows.Forms.RadioButton(); this.flowRightToLeftBtn = new System.Windows.Forms.RadioButton(); this.FlowLayoutPanel1.SuspendLayout(); this.SuspendLayout(); // FlowLayoutPanel1 this.FlowLayoutPanel1.Controls.Add(this.Button1); this.FlowLayoutPanel1.Controls.Add(this.Button2); this.FlowLayoutPanel1.Controls.Add(this.Button3); this.FlowLayoutPanel1.Controls.Add(this.Button4); this.FlowLayoutPanel1.Location = new System.Drawing.Point(47, 55); this.FlowLayoutPanel1.Name = "FlowLayoutPanel1"; this.FlowLayoutPanel1.TabIndex = 0; // Button1 this.Button1.Location = new System.Drawing.Point(3, 3); this.Button1.Name = "Button1"; this.Button1.TabIndex = 0; this.Button1.Text = "Button1"; // Button2 this.Button2.Location = new System.Drawing.Point(84, 3); this.Button2.Name = "Button2"; this.Button2.TabIndex = 1; this.Button2.Text = "Button2"; // Button3 this.Button3.Location = new System.Drawing.Point(3, 32); this.Button3.Name = "Button3"; this.Button3.TabIndex = 2; this.Button3.Text = "Button3"; // Button4 this.Button4.Location = new System.Drawing.Point(84, 32); this.Button4.Name = "Button4"; this.Button4.TabIndex = 3; this.Button4.Text = "Button4"; // wrapContentsCheckBox this.wrapContentsCheckBox.Location = new System.Drawing.Point(46, 162); this.wrapContentsCheckBox.Name = "wrapContentsCheckBox"; this.wrapContentsCheckBox.TabIndex = 1; this.wrapContentsCheckBox.Text = "Wrap Contents"; this.wrapContentsCheckBox.CheckedChanged += new System.EventHandler(this.wrapContentsCheckBox_CheckedChanged); // flowTopDownBtn this.flowTopDownBtn.Location = new System.Drawing.Point(45, 193); this.flowTopDownBtn.Name = "flowTopDownBtn"; this.flowTopDownBtn.TabIndex = 2; this.flowTopDownBtn.Text = "Flow TopDown"; this.flowTopDownBtn.CheckedChanged += new System.EventHandler(this.flowTopDownBtn_CheckedChanged); // flowBottomUpBtn this.flowBottomUpBtn.Location = new System.Drawing.Point(44, 224); this.flowBottomUpBtn.Name = "flowBottomUpBtn"; this.flowBottomUpBtn.TabIndex = 3; this.flowBottomUpBtn.Text = "Flow BottomUp"; this.flowBottomUpBtn.CheckedChanged += new System.EventHandler(this.flowBottomUpBtn_CheckedChanged); // flowLeftToRight this.flowLeftToRight.Location = new System.Drawing.Point(156, 193); this.flowLeftToRight.Name = "flowLeftToRight"; this.flowLeftToRight.TabIndex = 4; this.flowLeftToRight.Text = "Flow LeftToRight"; this.flowLeftToRight.CheckedChanged += new System.EventHandler(this.flowLeftToRight_CheckedChanged); // flowRightToLeftBtn this.flowRightToLeftBtn.Location = new System.Drawing.Point(155, 224); this.flowRightToLeftBtn.Name = "flowRightToLeftBtn"; this.flowRightToLeftBtn.TabIndex = 5; this.flowRightToLeftBtn.Text = "Flow RightToLeft"; this.flowRightToLeftBtn.CheckedChanged += new System.EventHandler(this.flowRightToLeftBtn_CheckedChanged); // Form1 this.ClientSize = new System.Drawing.Size(292, 266); this.Controls.Add(this.flowRightToLeftBtn); this.Controls.Add(this.flowLeftToRight); this.Controls.Add(this.flowBottomUpBtn); this.Controls.Add(this.flowTopDownBtn); this.Controls.Add(this.wrapContentsCheckBox); this.Controls.Add(this.FlowLayoutPanel1); this.Name = "Form1"; this.Text = "Form1"; this.FlowLayoutPanel1.ResumeLayout(false); this.ResumeLayout(false); #endregion Imports System.Windows.Forms Public Class Form1 Inherits System.Windows.Forms.Form Private Sub wrapContentsCheckBox_CheckedChanged( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles wrapContentsCheckBox.CheckedChanged Me.FlowLayoutPanel1.WrapContents = Me.wrapContentsCheckBox.Checked End Sub Private Sub flowTopDownBtn_CheckedChanged( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles flowTopDownBtn.CheckedChanged Me.FlowLayoutPanel1.FlowDirection = FlowDirection.TopDown End Sub Private Sub flowBottomUpBtn_CheckedChanged( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles flowBottomUpBtn.CheckedChanged Me.FlowLayoutPanel1.FlowDirection = FlowDirection.BottomUp End Sub Private Sub flowLeftToRight_CheckedChanged( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles flowLeftToRight.CheckedChanged Me.FlowLayoutPanel1.FlowDirection = FlowDirection.LeftToRight End Sub Private Sub flowRightToLeftBtn_CheckedChanged( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles flowRightToLeftBtn.CheckedChanged Me.FlowLayoutPanel1.FlowDirection = FlowDirection.RightToLeft End Sub #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() 'Add any initialization after the InitializeComponent() call End Sub 'Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If (components IsNot Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub Friend WithEvents FlowLayoutPanel1 As System.Windows.Forms.FlowLayoutPanel Friend WithEvents wrapContentsCheckBox As System.Windows.Forms.CheckBox Friend WithEvents flowTopDownBtn As System.Windows.Forms.RadioButton Friend WithEvents flowBottomUpBtn As System.Windows.Forms.RadioButton Friend WithEvents flowLeftToRight As System.Windows.Forms.RadioButton Friend WithEvents flowRightToLeftBtn As System.Windows.Forms.RadioButton Friend WithEvents Button1 As System.Windows.Forms.Button Friend WithEvents Button2 As System.Windows.Forms.Button Friend WithEvents Button3 As System.Windows.Forms.Button Friend WithEvents Button4 As System.Windows.Forms.Button 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer 'NOTE: The following procedure is required by the Windows Form Designer 'It can be modified using the Windows Form Designer. 'Do not modify it using the code editor. <System.Diagnostics.DebuggerNonUserCode()> Private Sub InitializeComponent() Me.FlowLayoutPanel1 = New System.Windows.Forms.FlowLayoutPanel Me.wrapContentsCheckBox = New System.Windows.Forms.CheckBox Me.flowTopDownBtn = New System.Windows.Forms.RadioButton Me.flowBottomUpBtn = New System.Windows.Forms.RadioButton Me.flowLeftToRight = New System.Windows.Forms.RadioButton Me.flowRightToLeftBtn = New System.Windows.Forms.RadioButton Me.Button1 = New System.Windows.Forms.Button Me.Button2 = New System.Windows.Forms.Button Me.Button3 = New System.Windows.Forms.Button Me.Button4 = New System.Windows.Forms.Button Me.FlowLayoutPanel1.SuspendLayout() Me.SuspendLayout() 'FlowLayoutPanel1 Me.FlowLayoutPanel1.Controls.Add(Me.Button1) Me.FlowLayoutPanel1.Controls.Add(Me.Button2) Me.FlowLayoutPanel1.Controls.Add(Me.Button3) Me.FlowLayoutPanel1.Controls.Add(Me.Button4) Me.FlowLayoutPanel1.Location = New System.Drawing.Point(47, 55) Me.FlowLayoutPanel1.Name = "FlowLayoutPanel1" Me.FlowLayoutPanel1.TabIndex = 0 'wrapContentsCheckBox Me.wrapContentsCheckBox.Location = New System.Drawing.Point(46, 162) Me.wrapContentsCheckBox.Name = "wrapContentsCheckBox" Me.wrapContentsCheckBox.TabIndex = 1 Me.wrapContentsCheckBox.Text = "Wrap Contents" 'flowTopDownBtn Me.flowTopDownBtn.Location = New System.Drawing.Point(45, 193) Me.flowTopDownBtn.Name = "flowTopDownBtn" Me.flowTopDownBtn.TabIndex = 2 Me.flowTopDownBtn.Text = "Flow TopDown" 'flowBottomUpBtn Me.flowBottomUpBtn.Location = New System.Drawing.Point(44, 224) Me.flowBottomUpBtn.Name = "flowBottomUpBtn" Me.flowBottomUpBtn.TabIndex = 3 Me.flowBottomUpBtn.Text = "Flow BottomUp" 'flowLeftToRight Me.flowLeftToRight.Location = New System.Drawing.Point(156, 193) Me.flowLeftToRight.Name = "flowLeftToRight" Me.flowLeftToRight.TabIndex = 4 Me.flowLeftToRight.Text = "Flow LeftToRight" 'flowRightToLeftBtn Me.flowRightToLeftBtn.Location = New System.Drawing.Point(155, 224) Me.flowRightToLeftBtn.Name = "flowRightToLeftBtn" Me.flowRightToLeftBtn.TabIndex = 5 Me.flowRightToLeftBtn.Text = "Flow RightToLeft" 'Button1 Me.Button1.Location = New System.Drawing.Point(3, 3) Me.Button1.Name = "Button1" Me.Button1.TabIndex = 0 Me.Button1.Text = "Button1" 'Button2 Me.Button2.Location = New System.Drawing.Point(84, 3) Me.Button2.Name = "Button2" Me.Button2.TabIndex = 1 Me.Button2.Text = "Button2" 'Button3 Me.Button3.Location = New System.Drawing.Point(3, 32) Me.Button3.Name = "Button3" Me.Button3.TabIndex = 2 Me.Button3.Text = "Button3" 'Button4 Me.Button4.Location = New System.Drawing.Point(84, 32) Me.Button4.Name = "Button4" Me.Button4.TabIndex = 3 Me.Button4.Text = "Button4" 'Form1 Me.ClientSize = New System.Drawing.Size(292, 266) Me.Controls.Add(Me.flowRightToLeftBtn) Me.Controls.Add(Me.flowLeftToRight) Me.Controls.Add(Me.flowBottomUpBtn) Me.Controls.Add(Me.flowTopDownBtn) Me.Controls.Add(Me.wrapContentsCheckBox) Me.Controls.Add(Me.FlowLayoutPanel1) Me.Name = "Form1" Me.Text = "Form1" Me.FlowLayoutPanel1.ResumeLayout(False) Me.ResumeLayout(False) End Sub Friend Shared ReadOnly Property GetInstance() As Form1 If m_DefaultInstance Is Nothing OrElse m_DefaultInstance.IsDisposed() Then SyncLock m_SyncObject If m_DefaultInstance Is Nothing OrElse m_DefaultInstance.IsDisposed() Then m_DefaultInstance = New Form1 End If End SyncLock End If Return m_DefaultInstance End Get End Property Private Shared m_DefaultInstance As Form1 Private Shared m_SyncObject As New Object #End Region End Class FlowLayoutPanel 控制項會以水平或垂直的流動方向來排列其內容。 其內容可以從某一資料列換行至下一個資料列,或從某一資料行換行至下一個資料行。 或者,也可以裁剪其內容,而不是包裝。

您可以設定 FlowDirection 屬性的值來指定文字方向。 控件 FlowLayoutPanel 會正確反轉其從右至左 (RTL) 版面配置中的流程方向。 您也可以藉由設定 屬性的值 WrapContents 來指定控制項的內容 FlowLayoutPanel 是否已包裝或裁剪。

任何 Windows Forms 控件,包括的其他實例 FlowLayoutPanel ,都可以是 控件的 FlowLayoutPanel 子系。 使用這項功能,您可以建構複雜的配置,以在執行階段調整為表單的維度。

子控制項的停駐和錨定行為,和其他容器控制項的行為不一樣。 停駐和錨定是相對於文字方向中的最大控制項。 如需詳細資訊,請參閱 如何:錨定和停駐 FlowLayoutPanel 控件中的子控件