การทำความรู้จักกับ Controls ประเภทต่าง ๆ เป็นพื้นฐานสำคัญใน Windows Forms App (WinForms) เพราะ Controls คือสิ่งที่ทำให้ฟอร์มของเรามีชีวิตชีวา ช่วยให้ผู้ใช้สามารถโต้ตอบกับโปรแกรมได้จริง
Controls ใน WinForms App คืออะไร
Controls คือ องค์ประกอบของส่วนติดต่อผู้ใช้ (User Interface – UI) ที่ถูกวางไว้บน Form เพื่อให้ผู้ใช้สามารถโต้ตอบกับโปรแกรมได้ เช่น
- กรอกข้อมูล
- กดปุ่ม
- เลือกรายการ
- แสดงผลข้อมูล
พูดง่าย ๆ คือ Control คือเครื่องมือ UI ที่อยู่บน Form เช่น ปุ่ม, ช่องกรอกข้อความ, ป้ายข้อความ, ตารางข้อมูล ฯลฯ
หน้าที่ของ Controls
หน้าที่ของ Controls บน WinForms App มีดังนี้
- รับข้อมูลจากผู้ใช้ (Input Controls)
เช่น TextBox, ComboBox, CheckBox, RadioButton - แสดงผลข้อมูล (Display Controls)
เช่น Label, PictureBox, DataGridView, ListBox - สั่งการทำงาน (Action Controls)
เช่น Button, MenuStrip, ToolStripButton - จัดการโครงสร้างการแสดงผล (Container Controls)
เช่น GroupBox, Panel, TabControl, SplitContainer
องค์ประกอบของ Control เมื่อถูกนำมาใช้งานบน Form
ทุก Control บนฟอร์มจะมีองค์ประกอบหลัก ๆ 4 ส่วน คือ
- Properties (คุณสมบัติ)
ใช้กำหนดลักษณะ เช่น ชื่อ ขนาด สี ตัวอักษร เช่นText,Name,Size,BackColor - Events (เหตุการณ์)
ใช้กำหนดว่าจะให้ Control ทำอะไรเมื่อเกิดการกระทำของผู้ใช้ เช่นClick,TextChanged,MouseHover - Methods (เมธอด)
คือคำสั่งหรือฟังก์ชันที่ Control สามารถทำได้ เช่นFocus(),Show(),Hide() - Appearance (การแสดงผล)
รูปแบบที่เห็นจริงบนหน้าจอ เช่น สี ขอบ ฟอนต์ ตำแหน่ง
วิธีนำคอนโทรล (Control) มาวางบนฟอร์มใน WinForms App
โดยทั่วไปแล้ว การเพิ่มคอนโทรลลงบนฟอร์มใน Windows Forms Application (WinForms) สามารถทำได้ 3 วิธีหลัก ดังนี้
วิธีที่ 1 : ลากวางจาก Toolbox (Drag & Drop)
เราสามารถนำคอนโทรลมาใช้ใน Form โดยการ Drag & Drop (ลากแล้ววาง) ได้เลย โดยทำดังนี้
- เปิดแถบ Toolbox (อยู่ด้านซ้ายของหน้าจอ)
- เลือกคอนโทรลที่ต้องการ เช่น Button, Label, TextBox
- คลิกแล้วลาก (Drag) มาวาง (Drop) ลงบนฟอร์ม

วิธีที่ 2 : ดับเบิ้ลคลิกคอนโทรลที่ต้องการใช้งาน
เราสามารถดับเบิ้ลคลิกที่คอนโทรลที่ต้องการใช้งานได้เลย แล้วคอนโทรลดังกล่าวจะถูกนำมาวางในฟอร์มทันที (กรณีเป็นคอนโทรลที่แสดงผลบนฟอร์ม) โดยจะถูกวางไว้ที่มุมซ้ายด้านบนเป็นตำแหน่งเริ่มต้น

ถ้าเป็นคอนโทรลที่ไม่ได้แสดงผลในฟอร์ม จะถูกนำมาวางที่ด้านล่างฟอร์ม
วิธีที่ 3 : เขียนโค้ดเพิ่มคอนโทรลแบบ Dynamic (Runtime Creation)
เราสามารถใช้โค้ด C# เพิ่มคอนโทรลลงบนฟอร์มขณะรันโปรแกรม เช่น ในตัวอย่างจะสร้าง ปุ่มขึ้นมา 1 ปุ่ม พร้อมกำหนดการทำงานในขณะที่ฟอร์มถูกโหลด ดังนี้
ดับเบิ้ลคลิกที่ฟอร์มเพื่อสร้างเหตุการณ์ Load() และเขียนโค้ดดังนี้
namespace MyWinFormsApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Button btnHello = new Button(); // สร้างปุ่มใหม่
btnHello.Text = "สวัสดี";
btnHello.Location = new Point(100, 100);
btnHello.Size = new Size(100, 40);
// เพิ่มปุ่มลงในฟอร์ม
this.Controls.Add(btnHello);
// กำหนด Event เมื่อคลิกปุ่ม
btnHello.Click += (s, ev) =>
{
MessageBox.Show("คลิกแล้ว!");
};
}
}
}
จากโค้ด เป็นการสร้างปุ่มกดขึ้นมา 1 ปุ่มในขณะฟอร์มถูกโหลด และกำหนดการทำงานให้แสดงกล่องข้อความ “คลิกแล้ว!” เมื่อปุ่มถูกกด

Controls ที่มีให้ใช้ใน Windows Forms App บน Visual Studio 2026
Controls ต่าง ๆ ที่มีให้ใช้งานใน Windows Forms App บน Visual Studio 2026 มีดังนี้
Controls ในกลุ่ม Common
คอนโทรลในกลุ่ม Common ของ Windows Forms เป็นคอนโทรลที่ถูกใช้งานบ่อยที่สุดในการออกแบบ UI ของโปรแกรม Windows Forms App บน Visual Studio
ด้านล่างนี้คือ ตารางอธิบายคอนโทรลทั้งหมดในกลุ่ม Common พร้อมหน้าที่และตัวอย่างการใช้งานในชีวิตจริง
| คอนโทรล | หน้าที่ / การใช้งาน | ตัวอย่างการใช้งานจริง |
|---|---|---|
| Button | ปุ่มกด ใช้สำหรับสั่งให้โปรแกรมทำงานบางอย่างเมื่อคลิก | ปุ่ม “บันทึกข้อมูล”, “ยืนยัน”, “ออกจากระบบ” |
| CheckBox | ช่องติ๊กเลือก (✓) ใช้เลือกค่าจริง/เท็จ หรือเปิด/ปิดตัวเลือก | ช่อง “จำรหัสผ่านไว้”, “ยอมรับเงื่อนไข” |
| CheckedListBox | รายการหลายบรรทัดที่แต่ละรายการมี CheckBox ให้เลือกได้หลายข้อ | เลือกวิชาที่สนใจ, เลือกหมวดหมู่สินค้า |
| ComboBox | กล่องเลือกแบบเลื่อนลง (Dropdown) ให้เลือกค่าหนึ่งจากหลายค่า | เลือกจังหวัด, เลือกประเภทสินค้า |
| DateTimePicker | ตัวเลือกวันและเวลา | ให้ผู้ใช้เลือกวันเกิด, วันที่นัดหมาย |
| Label | ป้ายข้อความ ใช้แสดงข้อมูลแบบอ่านอย่างเดียว | แสดงชื่อฟิลด์ เช่น “ชื่อผู้ใช้”, “รหัสผ่าน” |
| LinkLabel | ป้ายข้อความที่คลิกได้เหมือนลิงก์ | “ลืมรหัสผ่าน?”, “ไปที่เว็บไซต์หลัก” |
| ListBox | แสดงรายการหลายบรรทัด ให้ผู้ใช้เลือกได้หนึ่งหรือหลายรายการ | เลือกหมวดหมู่ข่าว, แสดงรายชื่อนักเรียน |
| ListView | แสดงข้อมูลเป็นรายการหรือแบบตาราง พร้อมคอลัมน์ | แสดงรายการไฟล์, รายการสินค้า, ข้อมูลติดต่อ |
| MaskedTextBox | กล่องข้อความที่บังคับรูปแบบการป้อนข้อมูล | ป้อนเบอร์โทร, รหัสบัตรประชาชน, วันที่ (##/##/####) |
| MonthCalendar | ปฏิทินแบบเต็มเดือน ใช้เลือกวันหรือช่วงวันที่ | เลือกวันที่จอง, เลือกวันเริ่ม–วันสิ้นสุด |
| NotifyIcon | แสดงไอคอนใน System Tray ของ Windows | โปรแกรมที่ทำงานเบื้องหลัง เช่น โปรแกรมแชต, Sync Files |
| NumericUpDown | กล่องป้อนตัวเลข พร้อมปุ่มลูกศรเพิ่ม/ลดค่า | ป้อนจำนวนสินค้า, คะแนน, อายุ |
| PictureBox | แสดงรูปภาพบนฟอร์ม (JPG, PNG, BMP ฯลฯ) | แสดงโลโก้, รูปโปรไฟล์, รูปสินค้า |
| ProgressBar | แถบแสดงความคืบหน้า | แสดงสถานะการโหลดไฟล์, การติดตั้งโปรแกรม |
| RadioButton | ปุ่มตัวเลือกแบบกลม ใช้เลือกได้เพียงหนึ่งตัวจากกลุ่ม | เลือกเพศ “ชาย / หญิง”, เลือกวิธีชำระเงิน |
| RichTextBox | กล่องข้อความที่รองรับการจัดรูปแบบ (ตัวหนา, สี, ฟอนต์ ฯลฯ) | ช่องเขียนบันทึก, พิมพ์ข้อความพร้อมสี |
| TextBox | กล่องข้อความทั่วไป ใช้ป้อนข้อมูลแบบอิสระ | ป้อนชื่อ, อีเมล, รหัสผ่าน |
| ToolTip | แสดงคำแนะนำเล็ก ๆ เมื่อวางเมาส์เหนือคอนโทรล | แสดงคำว่า “คลิกเพื่อบันทึกข้อมูล” เมื่อชี้ปุ่ม Save |
| TreeView | แสดงข้อมูลแบบโครงสร้างต้นไม้ (Hierarchy) | แสดงโฟลเดอร์และไฟล์, เมนูแบบย่อย เช่น “หมวดสินค้า > ย่อย” |
Controls ในกลุ่ม Containers
คอนโทรลในกลุ่ม Containers ใน Windows Forms เป็นคอนโทรลประเภทที่ใช้ “บรรจุ” หรือ “จัดเรียง” คอนโทรลอื่น ๆ บนฟอร์มให้เป็นระเบียบ เช่น กล่องกรอบ (GroupBox), แผงจัดวาง (Panel) หรือแท็บ (TabControl)
ด้านล่างนี้คือ ตารางอธิบายคอนโทรลทุกตัวในหมวด Containers พร้อมหน้าที่และตัวอย่างการใช้งานจริง
| คอนโทรล | หน้าที่ / การใช้งาน | ตัวอย่างการใช้งานจริง |
|---|---|---|
| FlowLayoutPanel | ใช้จัดเรียงคอนโทรลภายในโดยอัตโนมัติตามแนว ซ้าย→ขวา หรือ บน→ล่าง เมื่อพื้นที่ไม่พอจะขึ้นบรรทัดใหม่อัตโนมัติ | ใช้จัดเรียงปุ่มหรือรูปภาพในแนวต่อเนื่อง เช่น แกลเลอรี่, เมนูแบบแนวนอน |
| GroupBox | กล่องกรอบที่ใช้รวมคอนโทรลที่มีความสัมพันธ์กัน เช่น กลุ่มตัวเลือก | ใช้รวมปุ่ม RadioButton สำหรับเลือก “เพศชาย/หญิง” หรือ “วิธีชำระเงิน” |
| Panel | พื้นที่สี่เหลี่ยมที่ใช้บรรจุคอนโทรลอื่น และสามารถเลื่อน (Scroll) ได้ | ใช้สร้างส่วนย่อยในหน้าจอ เช่น พื้นที่กรอกข้อมูล หรือ Sidebar |
| SplitContainer | แบ่งพื้นที่ออกเป็น 2 ส่วน (Panel1 และ Panel2) โดยมีแถบลากปรับขนาดได้ระหว่างกลาง | ใช้สร้างหน้าจอสองฝั่ง เช่น “เมนูด้านซ้าย / เนื้อหาด้านขวา” หรือ “รายชื่อ / รายละเอียด” |
| TabControl | ใช้สร้าง “แท็บ (Tabs)” เพื่อแยกเนื้อหาออกเป็นหลายหน้าในฟอร์มเดียว | ใช้ทำหน้าจอตั้งค่า เช่น “ทั่วไป”, “ขั้นสูง”, “ระบบ” |
| TableLayoutPanel | ใช้จัดวางคอนโทรลในรูปแบบตาราง (แถว × คอลัมน์) คล้าย Grid | ใช้จัดฟอร์มรับข้อมูล เช่น ตารางฟิลด์ “ชื่อ, นามสกุล, เบอร์โทร, อีเมล” ให้เรียงตรงกัน |
Controls ในกลุ่ม Menus & Toolbars
Controls ในกลุ่ม Menus & Toolbars ใน Windows Forms App (WinForms) ใช้สำหรับสร้าง เมนู (Menu) และ แถบเครื่องมือ (Toolbar) เพื่อให้ผู้ใช้สามารถสั่งงานโปรแกรมได้สะดวกและเป็นระบบ เช่น เมนู “File”, “Edit”, “Help” หรือปุ่มลัดบน Toolbar
ด้านล่างนี้คือ ตารางอธิบายคอนโทรลทั้งหมดในกลุ่ม Menus & Toolbars พร้อมหน้าที่และตัวอย่างการใช้งานจริง
| คอนโทรล | หน้าที่ / การใช้งาน | ตัวอย่างการใช้งานจริง |
|---|---|---|
| ContextMenuStrip | เมนูคลิกขวา (Context Menu) ที่ปรากฏขึ้นเมื่อคลิกขวาบนคอนโทรลหรือพื้นที่ใด ๆ | เมนู “คัดลอก / วาง / ลบ” เมื่อคลิกขวาบน TextBox หรือรายการ |
| MenuStrip | สร้างแถบเมนูหลักของโปรแกรม (Main Menu Bar) ที่อยู่ด้านบนของฟอร์ม | เมนู “File”, “Edit”, “View”, “Help” เหมือนในโปรแกรม Word หรือ Notepad |
| StatusStrip | แถบแสดงสถานะ (Status Bar) อยู่ด้านล่างของฟอร์ม ใช้แสดงข้อมูลหรือข้อความสถานะของโปรแกรม | แสดงข้อความ “พร้อมใช้งาน”, “กำลังโหลดข้อมูล…”, หรือชื่อผู้ใช้งาน |
| ToolStrip | แถบเครื่องมือ (Toolbar) สำหรับเพิ่มปุ่มลัด เช่น ไอคอน “Save”, “Open”, “Exit” | แสดงปุ่มไอคอนลัดด้านบนของหน้าต่าง เช่น ใน Microsoft Word |
| ToolStripContainer | ภาชนะ (Container) ที่ใช้จัดวาง MenuStrip, ToolStrip, และ StatusStrip ให้อยู่ในตำแหน่งที่เหมาะสม | ใช้รวมเมนูด้านบน + Toolbar + Status Bar ในโครงสร้างเดียวของฟอร์ม |
Controls ในกลุ่ม Components
Controls ในกลุ่ม Components ของ Windows Forms App เป็นคอนโทรลประเภท ไม่แสดงผลบนหน้าฟอร์ม (Non-Visual Controls) หมายความว่าเมื่อใช้งานจะไม่เห็นบนหน้าต่างโปรแกรม แต่จะปรากฏเฉพาะในแถบด้านล่างของ Designer (Component Tray)
คอนโทรลกลุ่มนี้มักใช้เพื่อ ควบคุมกระบวนการเบื้องหลัง เช่น การทำงานแบบ Background, การตรวจจับไฟล์, การแสดง Error, หรือการทำงานแบบกำหนดเวลา
ด้านล่างนี้คือ ตารางอธิบายคอนโทรลทั้งหมดในกลุ่ม Components พร้อมหน้าที่และตัวอย่างการใช้งาน
| คอนโทรล | หน้าที่ / การใช้งาน | ตัวอย่างการใช้งานจริง |
|---|---|---|
| BackgroundWorker | ใช้ประมวลผลงานเบื้องหลัง (Background Task) โดยไม่ทำให้ UI ค้าง | ใช้โหลดข้อมูลจากฐานข้อมูลหรือประมวลผลใหญ่ ๆ โดยไม่ค้างหน้าจอ |
| ErrorProvider | ใช้แสดงเครื่องหมาย ❌ และข้อความแจ้งเตือนเมื่อข้อมูลใน Control ไม่ถูกต้อง | แสดงเครื่องหมาย X เมื่อกรอกข้อมูลไม่ครบใน TextBox |
| FileSystemWatcher | ตรวจสอบการเปลี่ยนแปลงของไฟล์หรือโฟลเดอร์แบบเรียลไทม์ เช่น การสร้าง, ลบ, แก้ไข | ใช้ตรวจจับเมื่อมีการเพิ่มไฟล์ใหม่ในโฟลเดอร์ที่เฝ้าระวัง |
| HelpProvider | ใช้เชื่อมโยงระบบ “Help” หรือ “คำแนะนำ” กับคอนโทรลบนฟอร์ม | แสดงคำอธิบายเมื่อผู้ใช้กด F1 หรือวางเมาส์เหนือฟิลด์ |
| ImageList | ใช้เก็บชุดภาพ (Image Collection) สำหรับใช้งานในคอนโทรลอื่น เช่น ListView, TreeView, ToolStrip | ใช้เก็บไอคอนของเมนูและปุ่มต่าง ๆ ภายในโปรแกรม |
| Process | ใช้เรียกหรือควบคุมโปรแกรมภายนอก เช่น เปิด Notepad, Browser หรือรันคำสั่งในระบบ | ใช้เปิดเว็บเบราว์เซอร์ หรือเปิดไฟล์ PDF ด้วยโปรแกรมภายนอก |
| Timer | ใช้ตั้งเวลาให้เกิดการทำงานอัตโนมัติซ้ำ ๆ ตามช่วงเวลาที่กำหนด (Interval) | ใช้ทำให้เวลาบนหน้าจออัปเดตทุก 1 วินาที หรือทำ Auto-Refresh ข้อมูล |
Controls ในกลุ่ม Printing
Controls ในกลุ่ม Printing ใน Windows Forms App (WinForms) เป็นชุดคอนโทรลที่ใช้สำหรับ การพิมพ์เอกสาร (Printing System) ทั้งการตั้งค่าหน้ากระดาษ การแสดงตัวอย่างก่อนพิมพ์ และการส่งข้อมูลไปยังเครื่องพิมพ์จริง
กลุ่มนี้นิยมใช้ในโปรแกรมที่ต้องมีการออกเอกสาร เช่น ใบเสร็จ, รายงาน, ใบส่งสินค้า, หรือรายงานผลการเรียน เป็นต้น
ด้านล่างนี้คือ ตารางอธิบายคอนโทรลทั้งหมดในกลุ่ม Printing พร้อมหน้าที่และตัวอย่างการใช้งาน
| คอนโทรล | หน้าที่ / การใช้งาน | ตัวอย่างการใช้งานจริง |
|---|---|---|
| PageSetupDialog | กล่องโต้ตอบ (Dialog) สำหรับตั้งค่าหน้ากระดาษ เช่น ขนาดกระดาษ, ระยะขอบ, แนวตั้ง/แนวนอน | ใช้ก่อนพิมพ์เอกสาร เพื่อให้ผู้ใช้ตั้งค่าหน้ากระดาษ |
| PrintDialog | กล่องโต้ตอบสำหรับเลือกเครื่องพิมพ์และตั้งค่าการพิมพ์ เช่น จำนวนหน้า, สำเนา, เครื่องพิมพ์ | ใช้ให้ผู้ใช้เลือกว่าจะพิมพ์ด้วยเครื่องพิมพ์ใด |
| PrintDocument | เป็นอ็อบเจกต์หลักที่จัดการการพิมพ์ ใช้เขียนโค้ดเพื่อกำหนดว่าต้องการพิมพ์อะไรและอย่างไร | ใช้เขียนโค้ดวาดข้อความ รูปภาพ ตาราง ลงบนกระดาษก่อนพิมพ์ |
| PrintPreviewControl | แสดงตัวอย่างการพิมพ์ภายในฟอร์ม (แบบฝังในหน้าโปรแกรม) | ใช้สร้างหน้าตัวอย่างก่อนพิมพ์ในฟอร์มโดยตรง |
| PrintPreviewDialog | กล่องโต้ตอบแสดงตัวอย่างก่อนพิมพ์ (แบบ Pop-up) | ใช้ให้ผู้ใช้ดูตัวอย่างก่อนพิมพ์จริง เช่น “ดูตัวอย่างใบเสร็จ” |
Controls ในกลุ่ม Dialogs
Controls ในกลุ่ม Dialogs ใน Windows Forms App (WinForms) กลุ่มนี้รวบรวมกล่องโต้ตอบมาตรฐานของ Windows (Common Dialog Boxes) ที่ช่วยให้ผู้ใช้สามารถเลือกไฟล์ สี ฟอนต์ หรือโฟลเดอร์ ได้อย่างสะดวกโดยไม่ต้องสร้าง UI เอง
ด้านล่างนี้คือ ตารางอธิบายคอนโทรลทั้งหมดในกลุ่ม Dialogs พร้อมหน้าที่และตัวอย่างการใช้งานจริง
| คอนโทรล | หน้าที่ / การใช้งาน | ตัวอย่างการใช้งานจริง |
|---|---|---|
| ColorDialog | กล่องโต้ตอบเลือกสี (Color Picker) มาตรฐานของ Windows | ให้ผู้ใช้เลือกสีพื้นหลังของฟอร์มหรือข้อความ |
| FolderBrowserDialog | กล่องโต้ตอบเลือกโฟลเดอร์ในระบบ | ให้ผู้ใช้เลือกโฟลเดอร์ปลายทางในการบันทึกไฟล์ |
| FontDialog | กล่องโต้ตอบเลือกฟอนต์ (Font Picker) พร้อมขนาด สี และสไตล์ | ให้ผู้ใช้เปลี่ยนฟอนต์ของข้อความใน TextBox |
| OpenFileDialog | กล่องโต้ตอบเปิดไฟล์ (File Open Dialog) เพื่อเลือกไฟล์จากระบบ | ใช้ให้ผู้ใช้เลือกไฟล์ภาพ, เอกสาร หรือข้อมูล |
| SaveFileDialog | กล่องโต้ตอบบันทึกไฟล์ (File Save Dialog) เพื่อกำหนดชื่อและตำแหน่งบันทึก | ให้ผู้ใช้เลือกตำแหน่งและชื่อไฟล์สำหรับบันทึกข้อมูล |
Controls ในกลุ่ม Data
Controls ในกลุ่ม Data ของ Windows Forms App (WinForms) เป็นคอนโทรลที่ใช้จัดการ ข้อมูล (Data Binding) ระหว่างฐานข้อมูล (Database) กับคอนโทรลบนฟอร์ม เช่น ตาราง แหล่งข้อมูล หรือคอนโทรลที่แสดงข้อมูล
คอนโทรลในกลุ่มนี้ช่วยให้นักพัฒนาสามารถเชื่อมต่อและแสดงข้อมูลได้อย่างง่ายดาย โดยไม่ต้องเขียนโค้ดมาก
| คอนโทรล | หน้าที่ / การใช้งาน | ตัวอย่างการใช้งานจริง |
|---|---|---|
| BindingSource | ตัวกลาง (Data Connector) สำหรับเชื่อมต่อคอนโทรลกับแหล่งข้อมูล เช่น Database, Dataset, List | ใช้เป็นแหล่งข้อมูลให้กับ DataGridView, ComboBox, TextBox |
| DataGridView | ตารางแสดงข้อมูล (Data Table Control) ใช้แสดงและแก้ไขข้อมูลจากฐานข้อมูลหรือ List | ใช้แสดงรายชื่อนักเรียน, รายการสินค้า, หรือข้อมูลจาก SQL Server |
