[C#] 實作流式佈局 - FlowLayoutPanel

更新 發佈閱讀 5 分鐘
raw-image

在開發 C# Windows Forms 應用程式時,我們經常需要將多個控制項以流式佈局排列,以便在不同大小的視窗或面板中適應佈局變化。這時,FlowLayoutPanel 是一個非常實用的容器控制項,它可以自動調整子控制項的位置,使其按照流式佈局排列。本篇教學將帶你透過一個簡單的例子,學會如何在 C# 中使用 FlowLayoutPanel

設定 FlowLayoutPanel 的屬性

MainForm_Load 事件處理方法中,我們將設定 FlowLayoutPanel 的一些屬性,以確保流式佈局正常運作。以下是幾個重要的屬性:

private void MainForm_Load(object sender, EventArgs e)
{
// 建立 FlowLayoutPanel 控制項
FlowLayoutPanel flowLayoutPanel1 = new FlowLayoutPanel();
flowLayoutPanel1.FlowDirection = FlowDirection.LeftToRight;
flowLayoutPanel1.WrapContents = true;
flowLayoutPanel1.AutoScroll = true;
flowLayoutPanel1.Dock = DockStyle.Fill; // 佔滿整個視窗
}
  • FlowDirection 屬性指定子控制項排列的方向。在這裡,我們選擇從左到右排列。
  • WrapContents 屬性指定是否在達到容器邊界時換行。這裡我們設定為 true,這樣當視窗大小不足容納所有子控制項時,會換行排列。
  • AutoScroll 屬性指定當容器不足以顯示所有子控制項時,是否自動顯示捲軸。這樣,即使子控制項超出視窗範圍,我們也可以捲動查看它們。

設定子控制項的大小和事件處理方法

MainForm_Load 事件中,我們也可以設定子控制項的大小和事件處理方法。

using System;
using System.Windows.Forms;

namespace FlowLayoutPanelDemo
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
CreateControls();
}

private void CreateControls()
{
// 建立按鈕控制項
Button button1 = new Button();
button1.Text = "按鈕1";
button1.Size = new System.Drawing.Size(100, 30);
button1.Click += new EventHandler(button_Click);

Button button2 = new Button();
button2.Text = "按鈕2";
button2.Size = new System.Drawing.Size(100, 30);
button2.Click += new EventHandler(button_Click);

Button button3 = new Button();
button3.Text = "按鈕3";
button3.Size = new System.Drawing.Size(100, 30);
button3.Click += new EventHandler(button_Click);

// 加入子控制項到 FlowLayoutPanel
flowLayoutPanel1.Controls.Add(button1);
flowLayoutPanel1.Controls.Add(button2);
flowLayoutPanel1.Controls.Add(button3);

// 加入 FlowLayoutPanel 到主視窗
this.Controls.Add(flowLayoutPanel1);
}
}
}

實作子控制項的事件處理方法

最後,我們為子控制項的事件處理方法 button_Click 添加一些簡單的邏輯。

private void button_Click(object sender, EventArgs e)
{
// 在這裡可以寫點擊按鈕後的處理邏輯
MessageBox.Show($"你按下了按鈕:{((Button)sender).Text}");
}

這將使你的應用程式更靈活地適應不同大小的視窗或面板,並且可以自動調整子控制項的位置。這只是 FlowLayoutPanel 的基本用法,你可以根據你的需求添加更多子控制項和處理更多事件,以建立更豐富和互動的應用程式。

留言
avatar-img
留言分享你的想法!
avatar-img
程式輕鬆玩
74會員
186內容數
這裡將以輕鬆風格,深入探討程式設計的基礎和高級概念。從程式語言到演算法,我們將以易懂的方式解釋每個主題,讓你輕鬆掌握。無論你是初學者或有經驗者,都能在這裡找到適合你的內容。無論你的目標是成為專業開發者還是擴展知識,我們都會陪伴你一同成長!
程式輕鬆玩的其他內容
2025/04/20
本週科技圈掀起多項重磅消息:OpenAI於4月14日釋出GPT‑4.1系列模型,進一步強化編碼與長文理解能力 Reuters;Chipolo推出POP藍牙追蹤器,同時支援Apple與Google尋找網路 The Verge;南韓新創RLWRLD完成1,480萬美元募資,將打造專屬機器人基礎模型
Thumbnail
2025/04/20
本週科技圈掀起多項重磅消息:OpenAI於4月14日釋出GPT‑4.1系列模型,進一步強化編碼與長文理解能力 Reuters;Chipolo推出POP藍牙追蹤器,同時支援Apple與Google尋找網路 The Verge;南韓新創RLWRLD完成1,480萬美元募資,將打造專屬機器人基礎模型
Thumbnail
2025/04/20
本週遊戲動態涵蓋經典 25 週年重返 PC 平台、回合制策略新作重燃星戰熱潮、Remedy 荒誕合擊新作搶先曝光、Game Pass 下架名單震撼登場,以及 Steam 獨立新秀推薦不容錯過 PC GamerWindows Central。
Thumbnail
2025/04/20
本週遊戲動態涵蓋經典 25 週年重返 PC 平台、回合制策略新作重燃星戰熱潮、Remedy 荒誕合擊新作搶先曝光、Game Pass 下架名單震撼登場,以及 Steam 獨立新秀推薦不容錯過 PC GamerWindows Central。
Thumbnail
2025/04/08
近來因為川普政府啟動全新一輪對等關稅政策,全球貿易風暴席捲而來,而台灣面臨的衝擊更是不容小覷。美方以台灣過去對美出口關稅達64%為依據,採取「對等關稅」原則回敬徵收32%關稅,這一舉措不僅使得國際市場恐慌連連,台股也出現劇烈下跌,吸引了各界關注。
Thumbnail
2025/04/08
近來因為川普政府啟動全新一輪對等關稅政策,全球貿易風暴席捲而來,而台灣面臨的衝擊更是不容小覷。美方以台灣過去對美出口關稅達64%為依據,採取「對等關稅」原則回敬徵收32%關稅,這一舉措不僅使得國際市場恐慌連連,台股也出現劇烈下跌,吸引了各界關注。
Thumbnail
看更多
你可能也想看
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
本章節的目的是讓讀者瞭解C#的物件導向特性,包括類別、繼承、多型、封裝等基本概念,以及介面、抽象類別、靜態類別等進階主題。此外,本章節也將介紹如何使用列舉、委派、Lambda表達式、泛型及反射,這些都是C#中常見的強大功能。
Thumbnail
本章節的目的是讓讀者瞭解C#的物件導向特性,包括類別、繼承、多型、封裝等基本概念,以及介面、抽象類別、靜態類別等進階主題。此外,本章節也將介紹如何使用列舉、委派、Lambda表達式、泛型及反射,這些都是C#中常見的強大功能。
Thumbnail
本文是C#入門教程的一部分,涵蓋了流程控制的各種語句與迴圈。這包括if、else if和else語句,三元運算子,switch語句,以及for、foreach和while迴圈。文中還介紹了如何在迴圈中使用break、continue、return和goto語句。
Thumbnail
本文是C#入門教程的一部分,涵蓋了流程控制的各種語句與迴圈。這包括if、else if和else語句,三元運算子,switch語句,以及for、foreach和while迴圈。文中還介紹了如何在迴圈中使用break、continue、return和goto語句。
Thumbnail
在這個教學中,我們將使用 C# 和 WinForms 來建立一個基本的行事曆應用。我們將使用 MonthCalendar 控制元件,這是一個方便的工具,可用於顯示和選擇日期。這篇文章介紹瞭如何建立基本的行事曆應用,以及如何設定事件處理和添加自定義功能。
Thumbnail
在這個教學中,我們將使用 C# 和 WinForms 來建立一個基本的行事曆應用。我們將使用 MonthCalendar 控制元件,這是一個方便的工具,可用於顯示和選擇日期。這篇文章介紹瞭如何建立基本的行事曆應用,以及如何設定事件處理和添加自定義功能。
Thumbnail
在 C# 的視窗應用程式開發中,有時候我們需要在子視窗中取得父視窗的參考,以實現不同視窗之間的資訊交換或操作。這篇教學將會示範如何使用 Owner 屬性來在子視窗中取得父視窗的參考,以及如何進行相關操作。
Thumbnail
在 C# 的視窗應用程式開發中,有時候我們需要在子視窗中取得父視窗的參考,以實現不同視窗之間的資訊交換或操作。這篇教學將會示範如何使用 Owner 屬性來在子視窗中取得父視窗的參考,以及如何進行相關操作。
Thumbnail
當你需要在 C# Windows Forms 應用程式中以表格形式排列子控制項時,TableLayoutPanel 是一個非常有用的容器控制項。TableLayoutPanel 允許你將子控制項放入行和列的格子中,並且可以輕鬆地調整格子的大小和配置。
Thumbnail
當你需要在 C# Windows Forms 應用程式中以表格形式排列子控制項時,TableLayoutPanel 是一個非常有用的容器控制項。TableLayoutPanel 允許你將子控制項放入行和列的格子中,並且可以輕鬆地調整格子的大小和配置。
Thumbnail
在開發 C# Windows Forms 應用程式時,我們經常需要將多個控制項以流式佈局排列,以便在不同大小的視窗或面板中適應佈局變化。這時,FlowLayoutPanel 是一個非常實用的容器控制項,它可以自動調整子控制項的位置,使其按照流式佈局排列。
Thumbnail
在開發 C# Windows Forms 應用程式時,我們經常需要將多個控制項以流式佈局排列,以便在不同大小的視窗或面板中適應佈局變化。這時,FlowLayoutPanel 是一個非常實用的容器控制項,它可以自動調整子控制項的位置,使其按照流式佈局排列。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News