รู้จักกับ Controls ต่าง ๆ ใน WinForms App ใน Visual Studio 2026

การทำความรู้จักกับ Controls ประเภทต่าง ๆ เป็นพื้นฐานสำคัญใน Windows Forms App (WinForms) เพราะ Controls คือสิ่งที่ทำให้ฟอร์มของเรามีชีวิตชีวา ช่วยให้ผู้ใช้สามารถโต้ตอบกับโปรแกรมได้จริง

Controls ใน WinForms App คืออะไร

Controls คือ องค์ประกอบของส่วนติดต่อผู้ใช้ (User Interface – UI) ที่ถูกวางไว้บน Form เพื่อให้ผู้ใช้สามารถโต้ตอบกับโปรแกรมได้ เช่น

  • กรอกข้อมูล
  • กดปุ่ม
  • เลือกรายการ
  • แสดงผลข้อมูล

พูดง่าย ๆ คือ Control คือเครื่องมือ UI ที่อยู่บน Form เช่น ปุ่ม, ช่องกรอกข้อความ, ป้ายข้อความ, ตารางข้อมูล ฯลฯ

หน้าที่ของ Controls

หน้าที่ของ Controls บน WinForms App มีดังนี้

  1. รับข้อมูลจากผู้ใช้ (Input Controls)
    เช่น TextBox, ComboBox, CheckBox, RadioButton
  2. แสดงผลข้อมูล (Display Controls)
    เช่น Label, PictureBox, DataGridView, ListBox
  3. สั่งการทำงาน (Action Controls)
    เช่น Button, MenuStrip, ToolStripButton
  4. จัดการโครงสร้างการแสดงผล (Container Controls)
    เช่น GroupBox, Panel, TabControl, SplitContainer

องค์ประกอบของ Control เมื่อถูกนำมาใช้งานบน Form

ทุก Control บนฟอร์มจะมีองค์ประกอบหลัก ๆ 4 ส่วน คือ

  1. Properties (คุณสมบัติ)
    ใช้กำหนดลักษณะ เช่น ชื่อ ขนาด สี ตัวอักษร เช่น Text, Name, Size, BackColor
  2. Events (เหตุการณ์)
    ใช้กำหนดว่าจะให้ Control ทำอะไรเมื่อเกิดการกระทำของผู้ใช้ เช่น Click, TextChanged, MouseHover
  3. Methods (เมธอด)
    คือคำสั่งหรือฟังก์ชันที่ Control สามารถทำได้ เช่น Focus(), Show(), Hide()
  4. Appearance (การแสดงผล)
    รูปแบบที่เห็นจริงบนหน้าจอ เช่น สี ขอบ ฟอนต์ ตำแหน่ง

วิธีนำคอนโทรล (Control) มาวางบนฟอร์มใน WinForms App

โดยทั่วไปแล้ว การเพิ่มคอนโทรลลงบนฟอร์มใน Windows Forms Application (WinForms) สามารถทำได้ 3 วิธีหลัก ดังนี้

วิธีที่ 1 : ลากวางจาก Toolbox (Drag & Drop)

เราสามารถนำคอนโทรลมาใช้ใน Form โดยการ Drag & Drop (ลากแล้ววาง) ได้เลย โดยทำดังนี้

  1. เปิดแถบ Toolbox (อยู่ด้านซ้ายของหน้าจอ)
  2. เลือกคอนโทรลที่ต้องการ เช่น Button, Label, TextBox
  3. คลิกแล้วลาก (Drag) มาวาง (Drop) ลงบนฟอร์ม
นำคอนโทรลมาใช้โดยวิธีลากวาง

วิธีที่ 2 : ดับเบิ้ลคลิกคอนโทรลที่ต้องการใช้งาน

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

นำคอนโทรลมาใช้ในฟอร์มด้วยวิธีดับเบิ้ลคลิก

ถ้าเป็นคอนโทรลที่ไม่ได้แสดงผลในฟอร์ม จะถูกนำมาวางที่ด้านล่างฟอร์ม

วิธีที่ 3 : เขียนโค้ดเพิ่มคอนโทรลแบบ Dynamic (Runtime Creation)

เราสามารถใช้โค้ด C# เพิ่มคอนโทรลลงบนฟอร์มขณะรันโปรแกรม เช่น ในตัวอย่างจะสร้าง ปุ่มขึ้นมา 1 ปุ่ม พร้อมกำหนดการทำงานในขณะที่ฟอร์มถูกโหลด ดังนี้

ดับเบิ้ลคลิกที่ฟอร์มเพื่อสร้างเหตุการณ์ Load() และเขียนโค้ดดังนี้

C#
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
แชร์เรื่องนี้