รู้จักกับ Form และ Properties & Events ของ Form ใน Windows Forms App

Form และ Properties & Events เมื่อเราสร้างโปรเจกต์ Windows Forms Application ใน Visual Studio 2026 แล้ว สิ่งแรกที่จะเห็นคือ Form1 หรือหน้าต่างหลักของโปรแกรม ซึ่งสามารถปรับแต่งคุณสมบัติต่าง ๆ ได้ผ่าน Properties Window

สารบัญ (Table of Contents)

Form คืออะไร เอาไว้ทำอะไร

ใน การพัฒนา Windows Forms Application คำว่า Form หมายถึง หน้าต่าง (Window) ของโปรแกรม ซึ่งจะเป็นพื้นที่สำหรับให้ผู้ใช้โต้ตอบ (User Interface – UI) กับแอปพลิเคชัน

พูดง่าย ๆ Form คือหน้าต่างโปรแกรมนั่นเอง

Form ใน Visual Studio 2026

Properties คืออะไร

Properties ของ Form คือ ชุดคุณสมบัติ (Attributes) ที่ใช้ควบคุมหน้าตาและพฤติกรรมของหน้าต่างโปรแกรม เช่น ขนาด สี ข้อความ ชื่อ และการแสดงผลต่าง ๆ

การเข้าถึง Properties ของ Form

การเข้าถึงคุณสมบัติ (Properties) ของ Form สามารถทำได้ดังนี้

  1. ไปที่ Solution Explorer แล้วดับเบิลคลิก Form1.cs [Design] (หรือฟอร์มอื่น ๆ ตามที่ต้องการ)
  2. คลิกที่พื้นที่ว่างของ Form
  3. ไปที่ Properties Window (ปกติอยู่ด้านล่างขวา)

จะเห็นรายการ Properties มากมายที่สามารถปรับแต่งได้ทันที

Properties ของ Form

Properties ของ Form มีจำนวนมาก (มากกว่า 80 รายการ) โดยขึ้นอยู่กับ .NET Version ที่ใช้ (ใน Visual Studio 2026 จะอิงกับ .NET 8/9)

Properties ต่าง ๆ ของ Form ใน Visual Studio 2026

Properties ต่าง ๆ ของ Form ที่มีให้ใช้งานใน Visual Studio 2026 มีดังนี้

Property ในกลุ่ม Accessibility

ใช้เพื่อสนับสนุน Accessibility (การเข้าถึงสำหรับผู้พิการทางสายตาหรือการใช้งานพิเศษ) เช่น Screen Reader หรืออุปกรณ์ช่วยเหลืออื่น ๆ

  • AccessibleDescription → คำอธิบายของฟอร์ม ใช้กับผู้พิการทางสายตาที่ใช้ Screen Reader
  • AccessibleName → ชื่อของฟอร์มสำหรับ Accessibility (ต่างจาก Name ที่ใช้ในโค้ด)
  • AccessibleRole → บทบาทของฟอร์ม เช่น เป็นหน้าต่างหลัก หรือ Dialog

Property ในกลุ่ม Appearance

ใช้ควบคุมลักษณะการแสดงผลของฟอร์ม เช่น สี ฟอนต์ ขอบ และการวางภาพพื้นหลัง

  • BackColor → กำหนดสีพื้นหลังของฟอร์ม
  • BackgroundImage → ใส่รูปภาพเป็นพื้นหลังของฟอร์ม
  • BackgroundImageLayout → วิธีจัดวางภาพ (Tile, Stretch, Zoom, Center)
  • Cursor → รูปแบบ Cursor ที่แสดงเมื่ออยู่บนฟอร์ม เช่น Default, Hand, Cross
  • Font → ฟอนต์เริ่มต้นของข้อความที่อยู่บนฟอร์ม
  • ForeColor → สีของข้อความ/Control เริ่มต้นในฟอร์ม
  • FormBorderStyle → ลักษณะของขอบฟอร์ม (None, FixedDialog, Sizable ฯลฯ)
  • RightToLeft → กำหนดการแสดงข้อความจากขวาไปซ้าย (ใช้กับภาษาอาหรับ/ฮิบรู)
  • RightToLeftLayout → ใช้ร่วมกับ RightToLeft สำหรับ Layout แบบ RTL
  • Text → ข้อความที่แสดงบน Title Bar ของฟอร์ม
  • UseWaitCursor → ถ้ากำหนดเป็น True จะเปลี่ยน Cursor ทั้งฟอร์มเป็น “รอ” (เช่น นาฬิกาทราย/วงกลมหมุน)

Property ในกลุ่ม Behavior

ควบคุมพฤติกรรมของฟอร์ม เช่น การอนุญาต Drag & Drop, Context Menu, การแสดงผลให้ลื่นขึ้น หรือการรองรับ IME

  • AllowDrop → อนุญาต Drag & Drop บนฟอร์มหรือไม่
  • AutoValidate → การตรวจสอบค่าของ Control อัตโนมัติ (EnablePreventFocusChange, Disable, Inherit ฯลฯ)
  • ContextMenuStrip → เมนูคลิกขวาของฟอร์ม (Context Menu)
  • DoubleBuffered → ลดการกระพริบของหน้าจอเมื่อวาด UI (ใช้ Buffer)
  • Enabled → เปิด/ปิดการทำงานของฟอร์ม
  • ImeMode → โหมดการป้อนข้อมูลสำหรับภาษาที่ใช้ IME (จีน ญี่ปุ่น เกาหลี)

Property ในกลุ่ม Data

ใช้จัดการข้อมูลหรือค่าที่ผูกไว้กับฟอร์ม

  • DataBindings → การผูกค่ากับ Data Source เช่น Database หรือ Object
  • Tag → ฟิลด์ทั่วไปที่ใช้เก็บข้อมูลใด ๆ (Object) เช่น สถานะ หรือค่าพิเศษ

Property ในกลุ่ม Design

ใช้กำหนดค่าที่เกี่ยวข้องกับการออกแบบ (Design-time) และการรองรับหลายภาษา

  • (Name) → ชื่อฟอร์ม ใช้เรียกในโค้ด เช่น Form1
  • Language → ภาษาสำหรับ Resource (ใช้ทำ Localization)
  • Localizable → ถ้ากำหนดเป็น True จะสามารถตั้งค่าฟอร์มให้รองรับหลายภาษาได้
  • Locked → ถ้ากำหนดเป็น True จะล็อกไม่ให้เลื่อน Control บนฟอร์มในโหมด Design

Property ในกลุ่ม Focus

ใช้ควบคุมการตรวจสอบข้อมูล (Validation) เมื่อเปลี่ยนโฟกัส

  • CausesValidation → ถ้ากำหนดเป็น True จะเรียกการตรวจสอบข้อมูล (Validation) ของ Control ก่อนเปลี่ยนโฟกัส

Property ในกลุ่ม Layout

ใช้ควบคุมขนาด, การจัดวาง และตำแหน่งของฟอร์ม

  • AutoScaleMode → วิธีการปรับสัดส่วน UI (None, Font, Dpi, Inherit)
  • AutoScroll → ถ้ากำหนดเป็น True ฟอร์มจะมี Scrollbar อัตโนมัติถ้ามี Control เกินขอบเขต
  • AutoScrollMargin → ระยะขอบเมื่อใช้ Scrollbar
  • AutoScrollMinSize → ขนาดขั้นต่ำของ Scrollable Area
  • AutoSize → ปรับขนาดฟอร์มอัตโนมัติจากเนื้อหาภายใน
  • AutoSizeMode → กำหนดโหมด AutoSize (GrowOnly, GrowAndShrink)
  • Location → พิกัดตำแหน่งบนหน้าจอ (X,Y)
  • MaximumSize → ขนาดสูงสุดของฟอร์ม
  • MinimumSize → ขนาดต่ำสุดของฟอร์ม
  • Padding → ระยะห่างภายใน (ภายในขอบฟอร์ม)
  • Size → ขนาดของฟอร์ม (กว้าง × สูง)
  • StartPosition → ตำแหน่งตอนเปิดฟอร์ม (CenterScreen, Manual ฯลฯ)
  • WindowState → สถานะเริ่มต้น (Normal, Minimized, Maximized)

Property ในกลุ่ม Misc

ใช้สำหรับการทำงานร่วมกับคีย์บอร์ดและปุ่มลัด

  • AcceptButton → ปุ่มที่จะทำงานอัตโนมัติเมื่อกด Enter
  • CancelButton → ปุ่มที่จะทำงานอัตโนมัติเมื่อกด Esc
  • KeyPreview → ถ้ากำหนดเป็น True ฟอร์มจะรับ Key Event ก่อนส่งให้ Control ภายใน

Property ในกลุ่ม Window Style

ควบคุมลักษณะการแสดงผลของหน้าต่าง (Window) เช่น ปุ่ม Title Bar, ไอคอน, ความโปร่งใส และพฤติกรรม MDI

  • ControlBox → กำหนดว่าจะให้มีปุ่มควบคุมบน Title Bar (Minimize, Maximize, Close) หรือไม่
    • ค่า True = แสดงปุ่ม
    • ค่า False = ไม่แสดงปุ่มเลย
  • HelpButton → กำหนดว่าจะให้มีปุ่ม Help (?) อยู่บน Title Bar หรือไม่ (ใช้กับ FormBorderStyle แบบ FixedDialog เท่านั้น)
  • Icon → ไอคอนที่แสดงบน Title Bar และ Taskbar ของฟอร์ม
    • สามารถกำหนดไฟล์ .ico ของโปรแกรมเองได้
  • IsMdiContainer → ระบุว่าฟอร์มนี้เป็น MDI Parent หรือไม่
    • ถ้ากำหนดเป็น True ฟอร์มนี้จะเป็น Container ที่บรรจุ MDI Child Forms ได้ (เหมือนการเปิดหลายเอกสารในหน้าต่างเดียว เช่น Word รุ่นเก่า ๆ)
  • MainMenuStrip → ระบุเมนูหลัก (MenuStrip) ที่จะใช้ในฟอร์มนี้
  • MaximizeBox → กำหนดว่าจะให้มีปุ่ม Maximize บน Title Bar หรือไม่
  • MdiChildrenMinimizedAnchorBottom → กำหนดว่าจะให้ MDI Child Forms ที่ย่อ (Minimize) ไปอยู่ด้านล่างของ MDI Parent หรือไม่
    • True = อยู่ด้านล่าง (Default)
    • False = อยู่ด้านบน
  • MinimizeBox → กำหนดว่าจะให้มีปุ่ม Minimize บน Title Bar หรือไม่
  • Opacity → ความโปร่งใสของฟอร์ม (ค่า 0% – 100%)
    • 100% = ทึบเต็ม
    • 50% = โปร่งใสครึ่งหนึ่ง
  • ShowIcon → แสดง/ซ่อนไอคอนบน Title Bar ของฟอร์ม
  • ShowInTaskbar → กำหนดว่าฟอร์มนี้จะแสดงใน Taskbar ของ Windows หรือไม่
  • SizeGripStyle → กำหนดการแสดงปุ่ม Size Grip (มุมขวาล่างสำหรับลากปรับขนาด)
    • Auto = แสดงถ้าฟอร์มสามารถปรับขนาดได้
    • Show = แสดงเสมอ
    • Hide = ไม่แสดงเลย
  • TopMost → กำหนดว่าฟอร์มนี้จะอยู่ด้านบนสุดเสมอหรือไม่ (แม้จะเปิดหน้าต่างอื่น)
  • TransparencyKey → กำหนด สีที่จะทำให้โปร่งใส บนฟอร์ม
    • เช่น ถ้าเลือกสีชมพู พื้นที่ที่มีสีชมพูบนฟอร์มจะโปร่งใสทั้งหมด

Event คืออะไร?

Event คือ “เหตุการณ์” ที่เกิดขึ้นในขณะผู้ใช้โต้ตอบกับ Form หรือ Control เช่น การคลิกเมาส์ การพิมพ์คีย์บอร์ด การโหลดฟอร์ม หรือการเปลี่ยนค่า Property ใด ๆ

เมื่อ Event เกิดขึ้น เราสามารถ เขียนโค้ดตอบสนอง (Event Handler) ได้ เช่น เมื่อ Form ถูกโหลดขึ้นมา ให้โปรแกรมแสดงข้อความ เป็นต้น

ตัวอย่างการเขียนคำสั่งในเหตุการณ์ Load

C#
private void Form1_Load(object sender, EventArgs e)
{
    MessageBox.Show("ฟอร์มถูกโหลดแล้ว!");
}

การเข้าถึง Event

การเข้าถึง Event ของ Form หรือ Control อื่น ๆ สามารถทำได้โดยคลิกที่ไอคอนรูปสายฟ้า ในหน้าต่าง Properties

การเข้าถึง Event ของ Form

จะมีรายการ Event ต่าง ๆ ให้เลือกใช้ แยกเป็นกลุ่ม

รายการ Event ของ Form ที่มีให้ใช้ใน Visual Studio 2026

ใน Visual Studio 2026 มี Event ของ Form ที่สามารถใช้ได้ ดังนี้

Event ในกลุ่ม Action

กลุ่มนี้เกี่ยวข้องกับการกระทำของผู้ใช้ที่มีผลกับฟอร์มโดยตรง เช่น การคลิกเมาส์หรือการปรับขนาดฟอร์ม

  • Click → เรียกใช้เมื่อมีการคลิกเมาส์บนฟอร์ม
  • DoubleClick → เรียกใช้เมื่อดับเบิลคลิกบนฟอร์ม
  • MouseCaptureChanged → เกิดเมื่อฟอร์มสูญเสียการจับ (Capture) ของเมาส์
  • MouseClick → เรียกเมื่อผู้ใช้คลิกด้วยปุ่มเมาส์ (ซ้าย/ขวา)
  • MouseDoubleClick → เรียกเมื่อดับเบิลคลิกเมาส์
  • ResizeBegin → เริ่มต้นการปรับขนาดหน้าต่าง
  • ResizeEnd → จบการปรับขนาดหน้าต่าง
  • Scroll → เมื่อฟอร์มถูกเลื่อน (Scroll)

Event ในกลุ่ม Appearance

ใช้สำหรับควบคุมการวาด/Render ฟอร์มใหม่ เมื่อมีการเปลี่ยนแปลงที่ทำให้ต้อง Refresh UI

  • Paint → ใช้สำหรับวาด/Render UI ของฟอร์มใหม่

Event ในกลุ่ม Behavior

เกี่ยวข้องกับพฤติกรรมของฟอร์ม การเปิด/ปิด การเปลี่ยนสไตล์ หรือการโต้ตอบกับระบบ

  • ChangeUICues → เมื่อมีการเปลี่ยนการแสดงผลของ UI เช่น Focus Cue
  • ControlAdded → เมื่อมีการเพิ่ม Control ลงในฟอร์ม
  • ControlRemoved → เมื่อมีการลบ Control ออกจากฟอร์ม
  • FormClosed → ฟอร์มถูกปิดแล้ว
  • FormClosing → กำลังจะปิดฟอร์ม (ยังสามารถยกเลิกได้)
  • HelpButtonClicked → เมื่อผู้ใช้คลิกปุ่ม Help (?)
  • HelpRequested → เมื่อมีการร้องขอ Help (เช่น กด F1)
  • ImeModeChanged → โหมดการป้อนข้อมูล IME (จีน ญี่ปุ่น เกาหลี) ถูกเปลี่ยน
  • InputLanguageChanged → ภาษาคีย์บอร์ดถูกเปลี่ยน
  • InputLanguageChanging → กำลังจะเปลี่ยนภาษาคีย์บอร์ด
  • Load → ฟอร์มถูกโหลดขึ้นมา (ครั้งแรกที่เปิด)
  • QueryAccessibilityHelp → ฟอร์มขอข้อมูลสำหรับ Accessibility
  • Shown → ฟอร์มถูกแสดงครั้งแรก (หลัง Load เสร็จ)
  • StyleChanged → สไตล์ของฟอร์มเปลี่ยน เช่น BorderStyle
  • SystemColorsChanged → เมื่อสีระบบของ Windows ถูกเปลี่ยน (เช่น เปลี่ยน Theme)

Event ในกลุ่ม Data

เกี่ยวข้องกับการเปลี่ยนแปลงของข้อมูล และการ Binding

  • DataBindings → การเปลี่ยนแปลงการผูกข้อมูล (Data Binding)
  • DataContextChanged → แหล่งข้อมูล (DataContext) ถูกเปลี่ยน

Event ในกลุ่ม Drag Drop

ใช้ควบคุมการลากและวาง (Drag & Drop) ข้อมูลลงในฟอร์ม

  • DragDrop → มีการปล่อยข้อมูล (Drop) ลงในฟอร์ม
  • DragEnter → มีการลากเข้ามาในฟอร์ม
  • DragLeave → มีการลากออกจากฟอร์ม
  • DragOver → มีการลากผ่านฟอร์ม
  • GiveFeedback → ให้ Feedback ระหว่าง Drag & Drop
  • QueryContinueDrag → เมื่อระบบถามว่าจะดำเนินการ Drag ต่อหรือไม่

Event ในกลุ่ม Focus

ควบคุมการโฟกัสของฟอร์ม เมื่อผู้ใช้เลือก/เปลี่ยนหน้าต่าง

  • Activated → ฟอร์มได้รับโฟกัส (Active)
  • Deactivate → ฟอร์มสูญเสียโฟกัส (Inactive)
  • Enter → เมื่อโฟกัสเข้ามาที่ฟอร์ม
  • Leave → เมื่อโฟกัสออกจากฟอร์ม
  • Validated → ฟอร์มผ่านการตรวจสอบข้อมูลสำเร็จ
  • Validating → กำลังตรวจสอบข้อมูล (สามารถยกเลิกได้)

Event ในกลุ่ม Key (Keyboard Events)

ใช้จัดการกับการกดคีย์บอร์ด

  • KeyDown → เมื่อกดปุ่มคีย์บอร์ดลง
  • KeyPress → เมื่อกดปุ่มตัวอักษร (ใช้กับอักขระ เช่น a, b, c)
  • KeyUp → เมื่อปล่อยปุ่มคีย์บอร์ด
  • PreviewKeyDown → เมื่อกดปุ่มคีย์บอร์ด แต่เกิดก่อน KeyDown (ใช้ดักจับพิเศษ)

Event ในกลุ่ม Layout

จัดการกับการเปลี่ยนแปลงการจัดวางหน้าต่าง

  • DpiChanged → ความละเอียด DPI ของหน้าจอเปลี่ยน (ใช้กับ High DPI Display)
  • DpiChangedAfterParent → DPI ของฟอร์มเปลี่ยนหลังจาก Parent
  • DpiChangedBeforeParent → DPI ของฟอร์มเปลี่ยนก่อน Parent
  • Layout → เมื่อมีการจัดวาง (Layout) Control ภายในฟอร์ม
  • MdiChildActivate → เมื่อ MDI Child ได้รับการ Activate
  • Move → เมื่อฟอร์มถูกย้ายตำแหน่ง
  • PaddingChanged → เมื่อ Padding ของฟอร์มถูกเปลี่ยน
  • Resize → เมื่อขนาดฟอร์มเปลี่ยน

Event ในกลุ่ม Mouse

จัดการกับการเคลื่อนไหวและการคลิกเมาส์

  • MouseDown → เมื่อกดปุ่มเมาส์
  • MouseEnter → เมื่อเมาส์เลื่อนเข้ามาในฟอร์ม
  • MouseHover → เมื่อเมาส์หยุดอยู่บนฟอร์ม
  • MouseLeave → เมื่อเมาส์เลื่อนออกจากฟอร์ม
  • MouseMove → เมื่อเมาส์เคลื่อนที่ในฟอร์ม
  • MouseUp → เมื่อปล่อยปุ่มเมาส์

Event ในกลุ่ม Property Changed

ใช้ตรวจสอบเมื่อค่า Property ของฟอร์มเปลี่ยนแปลง

  • AutoSizeChanged → เมื่อค่า AutoSize เปลี่ยน
  • AutoValidateChanged → เมื่อค่า AutoValidate เปลี่ยน
  • BackColorChanged → สีพื้นหลังเปลี่ยน
  • BackgroundImageChanged → พื้นหลังรูปภาพเปลี่ยน
  • BackgroundImageLayoutChanged → วิธีจัดวางรูปภาพเปลี่ยน
  • BindingContextChanged → Context ของ Data Binding เปลี่ยน
  • CausesValidationChanged → เมื่อค่า CausesValidation เปลี่ยน
  • ClientSizeChanged → ขนาดพื้นที่ภายในฟอร์มเปลี่ยน
  • ContextMenuStripChanged → Context Menu เปลี่ยน
  • CursorChanged → Cursor เปลี่ยน
  • DockChanged → การ Dock เปลี่ยน
  • EnabledChanged → การเปิด/ปิดฟอร์มเปลี่ยน
  • FontChanged → ฟอนต์เปลี่ยน
  • ForeColorChanged → สีตัวอักษรเปลี่ยน
  • LocationChanged → ตำแหน่งฟอร์มเปลี่ยน
  • MaximizedBoundsChanged → พื้นที่ Maximize เปลี่ยน
  • MaximumSizeChanged → ขนาดสูงสุดเปลี่ยน
  • MinimumSizeChanged → ขนาดต่ำสุดเปลี่ยน
  • ParentChanged → ฟอร์มแม่ (Parent) เปลี่ยน
  • RegionChanged → บริเวณที่แสดงฟอร์มเปลี่ยน
  • RightToLeftChanged → การแสดงผล RTL เปลี่ยน
  • RightToLeftLayoutChanged → Layout RTL เปลี่ยน
  • SizeChanged → ขนาดฟอร์มเปลี่ยน
  • TextChanged → ข้อความ Title Bar เปลี่ยน
  • VisibleChanged → สถานะการมองเห็นฟอร์มเปลี่ยน

วิธีเพิ่ม Form ใหม่เข้ามาในโปรเจ็กต์

เมื่อเราสร้างโปรเจ็กต์แบบ Windows Forms App เราจะได้ฟอร์มมา 1 ฟอร์มเสมอ แต่ในโปรเจ็กต์จริงนั้น มักจะมีฟอร์มมากกว่า 1 ฟอร์ม

เราสามารถเพิ่มฟอร์มใหม่เข้ามาในโปรเจ็กต์ด้วยวิธีดังนี้

วิธีที่ 1 คลิกที่เมนู Project > Add Form (Windows Forms)

วิธีเพิ่ม Form วิธีที่ 1

วิธีที่ 2 คลิกขวาที่ชื่อโปรเจ็กต์ > Add > Form (Windows Forms)

วิธีเพิ่มฟอร์มแบบที่ 2

ตั้งชื่อฟอร์มแล้วคลิกปุ่ม Add

ตั้งชื่อฟอร์ม

อย่างไรก็ตาม ถึงแม้ว่าเราจะเพิ่มฟอร์มเข้ามาในโปรเจ็กต์มากกว่า 1 ฟอร์ม แต่ฟอร์มแรกที่ถูกสร้างตอนสร้างโปรเจ็กต์จะแสดงเป็นลำดับแรกเสมอเมื่อมีการรันโปรเจ็กต์

แต่เราสามารถสั่งให้แสดงฟอร์มอื่นเป็นลำดับแรกได้ โดยการแก้ไขโค้ดที่คลาส Program (Program.cs)

C#
namespace WinFormsApp
{
    internal static class Program
    {
        /// <summary>
        ///  The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            // To customize application configuration such as set high DPI settings or default font,
            // see https://aka.ms/applicationconfiguration.
            ApplicationConfiguration.Initialize();
            Application.Run(new Form1());
        }
    }
}

บรรทัดที่ 14 แก้ชื่อฟอร์มเป็นชื่ออื่นที่ต้องการให้แสดงเป็นลำดับแรก เช่น

C#
Application.Run(new Form2());

การเขียนโค้ดเพื่อเปิดฟอร์มใหม่

กรณีที่ต้องการสั่งให้เปิดฟอร์มด้วยการเขียนโค้ด เช่น ให้แสดงฟอร์มเมื่อคลิกปุ่ม สามารถทำได้หลายวิธี ดังนี้

วิธีที่ 1 เปิดฟอร์มแบบ Modeless (ผู้ใช้สามารถสลับไปมาระหว่างฟอร์มได้)

การเปิดฟอร์มแบบนี้ ผู้ใช้งานสามารถคลิกสลับไปมาระหว่างฟอร์มลูกกับฟอร์มหลักได้

C#
private void btnOpen_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2(); // สร้าง instance ของฟอร์มใหม่
    form2.Show(); // เปิดฟอร์มแบบไม่บล็อกฟอร์มหลัก
}

วิธีที่ 2 เปิดฟอร์มแบบ Modal (ผู้ใช้ต้องปิดฟอร์มก่อนถึงจะกลับไปฟอร์มหลักได้)

การเปิดฟอร์มวิธีนี้ ผู้ใช้งานจะไม่สามารถสลับไปมาระหว่างฟอร์มได้ ต้องปิดฟอร์มที่เปิดอยู่เสียก่อนจึงจะกลับไปยังฟอร์มหลักได้

C#
private void btnOpen_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2(); // สร้าง instance ของฟอร์มใหม่
    form2.ShowDialog(); // เปิดฟอร์มแบบบล็อก 
}

วิธีที่ 3 เปิดฟอร์มแล้วส่งค่าไปด้วย

การเปิดฟอร์มวิธีนี้จะส่งค่าออกจากฟอร์มหลักไปด้วย และฟอร์มที่ถูกเปิดจากฟอร์มหลักจะสามารถนำค่านั้นไปใช้ได้

ฟอร์มหลัก (Form1.cs)

C#
private void btnOpen_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2("ข้อความจากฟอร์มหลัก"); // สร้าง instance ของฟอร์มใหม่ และส่งค่าพารามิเตอร์เข้าไปด้วย
    form2.ShowDialog(); // เปิดฟอร์มแบบบล็อก
}

ฟอร์มลูก (Form2.cs)

C#
public Form2(string v) // รับค่าพารามิเตอร์จากฟอร์มหลัก
{
    InitializeComponent();
    label1.Text = v; // แสดงข้อความที่รับมาจากฟอร์มหลัก
}
แชร์เรื่องนี้