800 likes | 1.57k Views
บทที่ 8 การเขียนโปรแกรมภาษา VB.NET. อ.เอกบดินทร์ เกตุขาว ( Eakbodin4_7@hotmail.com) สาขาวิชาคอมพิวเตอร์ธุรกิจ คณะวิทยาการจัดการ มหาวิทยาลัยราชภัฏจันทรเกษม. VB.NET. Event-driven ? VB.NET Property, Method, Event VB.NET Object Form & Controls
E N D
บทที่ 8 การเขียนโปรแกรมภาษาVB.NET อ.เอกบดินทร์ เกตุขาว (Eakbodin4_7@hotmail.com) สาขาวิชาคอมพิวเตอร์ธุรกิจ คณะวิทยาการจัดการ มหาวิทยาลัยราชภัฏจันทรเกษม
VB.NET • Event-driven ? • VB.NET Property, Method, Event • VB.NET Object • Form & Controls • The three steps in creating a VB.NET program
Event-driven • การเขียนโปรแกรมแบบ Event-driven มีลักษณะคือจะไม่มีเหตุการณ์อะไรเกิดขึ้นจนกระทั่งแอพพลิเคชันถูกเรียกใช้เช่นปุ่มถูกกดเมนูถูกคลิกเลือกเป็นต้นโดยใน Visual Basic .NET จะมี Event Processor คอยดูแลตรวจสอบว่ามีเหตุการณ์เกิดขึ้นหรือไม่ถ้ามีเหตุการณ์ที่เกิดขึ้นมาจากส่วนไหนส่วนนั้นจะรับผิดชอบจัดการเหตุการณ์ที่เกิดขึ้น (Event Procedure) โดยเราจะต้องเขียนโค้ดต่างๆเพื่อตอบสนองต่อเหตุการณ์ต่างๆไว้เช่นเมื่อปุ่มถูกกดเราจะต้องเตรียมเขียนโค้ดของเหตุการณ์ไว้ล่วงหน้าสำหรับปุ่มนั้นว่าจะให้มีอะไรเกิดขึ้นหรือทำอะไรอีกตัวอย่างเช่นในไมโครซอฟท์เวิร์ดจะไม่มีอะไรเกิดขึ้นจนกระทั่งเรากดปุ่มเลือกเมนูหรือพิมพ์ข้อความเป็นต้น (Event Source เช่นปุ่มกดเรดิโอบัตทอน)
Property, Method, Event วัตถุ(Objects) แบ่งเป็น 1.Form หน้าจอของโปรแกรมที่แสดงในลักษณะของหน้าต่าง 2.Control ส่วนประกอบของหน้าจอที่ใช้ติดต่อกับผู้ใช้ เช่นButton, TextBox, Label และอื่นๆ
Property, Method, Event วัตถุ(Objects) จะต้องมี 1.Property (คุณสมบัติ) วัตถุทุกชนิดจะต้องมีลักษณะประจำตัวเช่นName, BackColor, ForeColor, Size 2.Event เป็นเหตุการณ์ที่เกิดขึ้นกับฟอร์มหรือตัววัตถุเช่นClick 3.Method พฤติกรรมที่วัตถุจะแสดงออกมาได้(เราสามารถสั่งได้)เช่นFocus, Dispose -Dispose เป็นการทำลายหายจากหน่วยความจำต่างจากvisible ที่เป็นการหายไปเท่านั้นแต่นำคืนกลับมาได้ -Focus เป็นการไปโฟกัสที่control นั้น -Hide เหมือนการใช้Button1.Visible=False เป็นการซ่อนcontrol นั้นแต่นี้เป็นการใช้Method -Show เหมือนการใช้Button2.Visible=True
Button1.Text = "OK"Button1.Height = 1000Button1.Width = 2000 เป็นการกำหนดค่าให้คุณสมบัติTextของButton1 เป็นการกำหนดค่าให้คุณสมบัติHeightของButton1เป็นการกำหนดค่าให้คุณสมบัติWidthของButton1 ตัวอย่างการกำหนดคุณสมบัติของ คอนโทรล Button
Property, Method, Event คุณสมบัติ(Property)พื้นฐานมีดังนี้ • Name : ชื่อของวัตถุจะใช้อ้างถึงชื่อในตอนเขียนโค้ด • Text : ข้อความที่แสดงบนcontrol นั้นๆ • Font : กำหนดชนิดของตัวอักษร • BackColor : สีของพื้นมี 3 กลุ่ม • 4.1System : เป็นกลุ่มสีมาตรฐานของระบบ • 4.2Web : เป็นกลุ่มสีที่มักมีชื่อเรียกในกลุ่มผู้พัฒนาเว็บไซท์จะรู้จักดี • 4.3Custom : เป็นกลุ่มสีที่เรากำหนดได้เองที่ช่องว่าง 2 แถว • ให้click ขวาที่ช่องว่างจะปรากฏหน้าจอให้ • เลือกสีเลือกความเข้มของสี • ForeColor สีของอักษรทำการเลือกในลักษณะเช่นเดียวกับBackColor • Locked : True หมายถึงเลื่อนcontrol ต่างๆไม่ได้ตอนdesign • False (default) หมายถึงใช้งานได้ตามปกติ • คุณสมบัติบางอย่างเมื่อเซตจะเห็นผลทันทีเช่นText, Backcolor แต่บางอย่างจะต้องสั่งทำงานจึงจะเห็น • เช่นEnabled, Visible
Property, Method, Event คุณสมบัติ(Property)พื้นฐานมีดังนี้ • Cursor : เป็นการเลือกลักษณะ Cursor เมื่อมาอยู่บน control นั้น • Enable : True (default) หมายถึง control นั้นใช้งานได้ • False หมายถึง Control นั้นไม่สามารถทำงานได้ • เช่นถ้าเป็น button ก็จะกดไม่ได้ • Visible : True หมายถึงแสดงให้เห็นตอน run • False หมายถึงซ่อนไว้เมื่อ run • Size : คือขนาดของ control • Width คือความกว้างของวัตถุในแนวนอน • Height คือความสูงของวัตถุในแนวตั้ง • Location : คือตำแหน่งที่วาง control ในแนวแกน x และ y • x แนวนอน y แนวตั้ง • หมายเลข 1-5 ทำงานทันทีเมื่อเราเซตในตอน Design • หมายเลข 6 เป็นคอนโทรลที่ไม่เกี่ยวข้องกับผลการทำงาน • แต่จะให้ความสะดวกกับผู้เขียนโปรแกรมตอนออกแบบหน้าจอ • หมายเลข 7-9 จะเห็นผลการทำงานเมื่อ Run program แล้ว • โดยเราจะมองไม่เห็นในตอน Design • ข้อสังเกตเมื่อมีการเปลี่ยนค่า Property ไปจากค่าเดิมที่เซตมา(default) ตัวอักษรใน Property จะเป็นตัวหนา
เมดธอด (Method) เป็นการสั่งให้ฟอร์มและคอนโทรลทำงานตามที่เราร้องขอไปในการสั่งให้ปุ่มคำสั่งทำงานตามที่เราร้องขอ Property, Method, Event Methodคล้ายฟังก์ชั่นเพราะว่ามีวงเล็บเปิด-ปิดเช่น Button1.Focus() สั่งให้ปุ่มเกิดโฟกัสที่ตัวมันเอง Button1.Dispose()สั่งให้ปุ่มทำการทำลายตัวเอง Button1.Hide() สั่งให้ปุ่มทำการซ่อน Button1.Show() สั่งให้ปุ่มแสดงออกมาหลังจากหายไป
Property, Method, Event ตัวอย่างการส่งให้ method focus() ทำงานขณะที่ฟอร์มถูกเรียกใช้งาน (load) Private Sub form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Button2.Focus() End Sub
อีเว็นต์ (Events) เป็นเหตุการณ์ที่เกิดขึ้นกับฟอร์มหรือคอนโทรลที่เราสามารถใส่คำสั่งเพื่อตอบสนองได้ ในการตอบสนองต่ออีเว็นต์ Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Clickbutton1.Text = "Click"End Sub Property, Method, Event
Property, Method, Event ลักษณะของหน้าต่างCode Editor 1.เลือกวัตถุเรียกว่าclass name 2.เลือกเหตุการณ์ให้กับวัตถุส่วนเลือกเหตุการณ์เรียกว่าmethod name เลือก method,event ที่ต้องการ เลือก Object ที่ต้องการ
1 2 4 3 • หน้าจอแสดงCode Editor เมื่อเปิดมาครั้งแรกโปรแกรมจะสร้างcode บางส่วนให้แล้วดังรูป • 1. เป็นส่วนของObject ที่เราจะเลือกเรียกช่องนี้ว่าClass name • 2. เป็นส่วนของEvent ของObject นั้นๆเรียกช่องนี้ว่าMethod name • 3. Windows Form Designer generated codeเป็นcode ที่สร้างขึ้นอัตโนมัติเมื่อเรามีการ • สร้างcontrol ถ้ากดที่เครื่องหมายบวกจะแสดงให้เห็นว่าcode ทั้งหมดเป็นอย่างไร • 4. ในVB.Net จะเป็นการเขียนโปรแกรมโดยอยู่ภายใต้Class เหมือนJAVA **เมื่อเลือก Object และ Event แล้ว VBจะสร้าง code บางส่วนให้ ตั้งแต่Private Sub … End Sub เมื่อเราต้องการสั่งงานในเหตุการณ์นี้ก็เขียนลงในระหว่าง Private Sub … End Sub
Namespacesคือระบบชื่อที่ใช้อ้างอิงถึงคลาสต่างๆวิธีการอ้างอิงถึง Namespaces ก่อนที่จะสร้างแอพพลิเคชั่นการอ้างอิงนี้จะอ้างอิงถึงคลาสนั้นเพียงแค่ Button เท่านั้นแทนที่จะเป็นชื่อเต็มคือ System.WinForms.Button เราจะต้องใช้คำสั่ง Imports เพื่ออ้างอิงถึง Namespaces ที่ต้องการใช้ Imports System.WinForms คำสั่ง Imports จะทำให้ทุกๆคลาสที่ถูกจัดกลุ่มอยู่ใน System.WinFoms เป็นที่รู้จักในโปรเจ็กต์การทำงานทุกอย่างของคลาสพื้นฐานใน .NET Framework จะอยู่ใน namespaces ที่เราเรียก System ที่จะมีตัวอย่างของคลาสต่างๆในตารางต่อไปนี้ Namespaces
ชื่อ Namespace รายละเอียด System.Data คลาสและชนิดข้อมูลที่เกี่ยวกับการติดต่อฐานข้อมูลพื้นฐาน System.Diagnostics คลาสที่ใช้ในการดีบักแอพพลิเคชั่นและตรวจสอบการทำงานของโค้ด System.IO คลาสที่ทำให้เราสามารถอ่านและเขียนไฟล์ได้ System.Math คลาสที่ทำให้เราสามารถคำนวณค่าต่างๆทางสมการทางคณิตศาสตร์ System.Reflection คลาสที่ใช้ในการค้นหาข้อมูลของ Assembly และทำงานกับ Metadata System.Security คลาสที่ใช้เพิ่มความสามารถทางด้าน security ให้กับแอพพลิเคชั่นของเรา
ฟอร์มเป็นเครื่องมือพื้นฐานที่ต้องทำงานด้วยเพราะฟอร์มจะเป็นหน้าต่างที่ติดต่อกับผู้ใช้เป็นพื้นที่ในการจัดวางคอนโทรลต่างๆฟอร์มเป็นเครื่องมือพื้นฐานที่ต้องทำงานด้วยเพราะฟอร์มจะเป็นหน้าต่างที่ติดต่อกับผู้ใช้เป็นพื้นที่ในการจัดวางคอนโทรลต่างๆ Windows Form
ฟอร์มและคอนโทรลต่างๆที่มีใน VB.NET เป็นคลาสที่มีอยู่ใน Namespaces ชื่อ System.Windows.Forms ซึ่งมีคลาสต่างๆช่วยในการสร้างแอพพลิเคชั่นที่รันบนวินโดวส์ Windows Form
ชื่อคุณสมบัติ คุณสมบัติที่สำคัญของฟอร์ม คำอธิบาย Name กำหนดชื่อของฟอร์มที่เราใช้อ้างอิงถึงในโปรแกรม FormBorderStyle กำหนดลักษณะในการเปลี่ยนขนาดของฟอร์มว่าเป็นอย่างไร MinimizeBox, MaximizeBox กำหนดให้ฟอร์มสามารถ Maximize, Minimize ได้หรือไม่ ControlBox กำหนดให้ฟอร์มมีเมนูระบบทางมุมซ้ายบนสุดด้วยหรือไม่ Text กำหนดข้อความที่แสดงบนไตเติ้ลบาร์ของฟอร์ม Icon กำหนดรูปไอคอนของฟอร์มเมื่อ Minimize ฟอร์ม Height, Width กำหนดความสูงและความกว้างของฟอร์ม Left, Top กำหนดตำแหน่งของฟอร์มโดยคิดจากตำแหน่งบนซ้ายของหน้าจอ Movable กำหนดว่าฟอร์มจะแสดงเคลื่อนย้ายได้หรือไม่ WindowState กำหนดว่าเมื่อเริ่มต้นเรียกฟอร์มจะให้อยู่ในแบบ Maximize, Minimize หรือธรรมดา Enabled กำหนดให้ฟอร์มสามารถตอบสนองต่ออีเว็นต์ได้หรือไม่ TopMost กำหนดว่าฟอร์มนี้จะแสดงอยู่เหนือฟอร์มอื่นๆเสมอหรือไม่
เมดธอดและอีเว็นต์ที่สำคัญของฟอร์มเมดธอดและอีเว็นต์ที่สำคัญของฟอร์ม ชื่อเมดธอด, อีเว็นต์ คำอธิบาย Load เป็นอีเว็นต์ที่เกิดเมื่อเรียกฟอร์มขึ้นมาครั้งแรก Resize เป็นอีเว็นต์ที่เกิดเมื่อมีการเปลี่ยนขนาดของฟอร์ม Activated เป็นอีเว็นต์ที่เกิดขึ้นเมื่อฟอร์มนั้นเป็นฟอร์มที่เราทำงานในขณะนั้น Deactivate เป็นอีเว็นต์ที่เกิดเมื่อฟอร์มอื่นๆกลายเป็นฟอร์มที่แอคทีฟแทน Click เป็นอีเว็นต์ที่เกิดเมื่อมีการ Click mouse บนฟอร์ม DoubleClick เป็นอีเว็นต์ที่เกิดเมื่อมีการ Double click บนฟอร์ม Show เป็นเมดธอดที่ใช้แสดงฟอร์มขึ้นมา Hide เป็นเมดธอดที่ใช้ซ่อนฟอร์มไว้ Close เป็นเมดธอดที่ใช้ปิดฟอร์ม Activate เป็นเมดธอดที่ใช้ทำให้ฟอร์มถูกเลือกใช้งานในขณะนั้น Windows Form
**มีลำดับการทำงานดังนี้**มีลำดับการทำงานดังนี้ เมื่อ Run Program จะมีลำดับดังนี้ Load VisibleChanged Activated Deactivated (เมื่อมีการทำงานสลับไปมาระหว่างหน้าต่างก็จะอยู่ในเหตุการณ์ Activated(หน้าต่างที่ทำงานอยู่) และ Deactivated (หน้าต่างที่ไม่ใช้งาน) เมื่อปิดโปรแกรมจะมีลำดับดังนี้ Closing Closed VisibleChanged แล้วจึงปิดโปรแกรม
ตัวอย่าง สำหรับการเลือกอีเว็นต์ของฟอร์ม 1. เลือก Base Class Events 2. เลือกอีเว็นต์ของฟอร์มที่ต้องการตอบสนอง Windows Form
Form (ต่อ) การกำหนด Startup Form 1.click ขวาที่ชื่อโปรเจค 2.เลือกในส่วน Startup object ให้เป็น Form ที่ต้องการ Project file
การเพิ่ม Form ให้ click ขวาที่ Project เลือก Add เลือก Add WindowsForm ดังรูป
การลบ Form มี 2 แบบ 1.ลบไฟล์ทิ้งไปจากดิสก์เลย 2.ลบจากโปรเจคแต่ไฟล์ยังอยู่ 1 2
Method 1.Show Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim f As New Form2() f.Show() End Sub ถ้าเขียนแบบข้างต้นเมื่อกด Button1 ทุกครั้งจะเปิดอีกหน้าต่างทุกครั้ง จึงแก้โดยการย้ายตัวแปรไว้ด้านนอก Dim f As New Form2() Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click f.Show() End Sub แต่ถ้าย้ายตัวแปรไว้ด้านนอก จะทำให้เปิดเพียงแค่หน้าต่างเดียวแต่จะมี error ถ้ามีการปิด Form2 แล้วเปิดใหม่ วิธีแก้คือให้ไปเขียน code เพิ่มที่ Form2 โดยไปเลือก Event ที่ Base Class Event ดังนี้ Private Sub Form2_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing e.Cancel = True Me.Hide() End Sub
2.ShowDialog : จะต่างจาก Show คือหน้าต่างที่ถูกเรียกขึ้นมาจะอยู่ด้านบนเสมอโดยไม่สามารถไปทำงานที่หน้าต่างอื่นได้ (เป็นการแสดงหน้าจอแบบ Modal ใน VB6) ต้องปิดหน้าต่างนี้ก่อนจึงจะไปใช้งานหน้าต่างอื่นได้เช่นใช้ในกรณีที่ต้องการให้ Save ก่อนหรือบังคับให้ User ทำสิ่งหนึ่งสิ่งใดกับ Form นี้ก่อนจึงทำงานต่อได้ 3.Activate : คือทำให้ Form นั้นอยู่ด้านบนเสมอเมื่อมีการเรียกใช้ 4.Hide : คือการซ่อน Form 5.Close : คือการสั่งปิด Form ถ้าใช้ Method close จะเข้าทำงานที่ Event 6.Closingดังนั้นอาจเป็นการปิด Form ไม่จริงสามารถเรียกมาใหม่ได้ 7Dispose : เป็นการสั่งปิด Form โดยทำลาย Form นั้นไปเลยและไม่สามารถเรียกมาใหม่ได้
Event Load : ทำงานเป็นลำดับต้นๆมักใช้ใส่โค้ดที่ต้องทำงานในช่วงโปรแกรมโหลดขึ้นมา Activated : เมื่อโปรแกรมถูก Activate ให้อยู่บนสุด VisibleChanged : เป็นการทำงานต่อจาก Load และหลังจาก Closed Deactivated : เมื่อ Form นั้นไม่ถูกเลือกใช้งาน Closing : เมื่อกำลังจะปิดโปรแกรม (ยกเลิกการปิดโปรแกรมได้) Closed : ปิดโปรแกรมไปแล้วใช้เคลียร์ค่าต่างๆก่อนจบโปรแกรมเช่นยกเลิกการติดต่อฐานข้อมูล มีลำดับการทำงานดังนี้ เมื่อ Run Program จะมีลำดับดังนี้ Load VisibleChanged ActivatedDeactivated (เมื่อมีการทำงานสลับไปมาระหว่างหน้าต่างก็จะอยู่ในเหตุการณ์ Activated(หน้าต่างที่ทำงานอยู่) และ Deactivated (หน้าต่างที่ไม่ใช้งาน) เมื่อปิดโปรแกรมจะมีลำดับดังนี้ Closing Closed VisibleChanged แล้วจึงปิดโปรแกรม
Control คำนำหน้าชื่อ ตัวอย่าง Label lbl lblName, lblPassword Button btn btnOk, btnSave Texbox txt txtName Form frm frmMain RadioButton rdo rdoMale, rdoFemale CheckBox chk chkColor ListBox lst lstFruit ComboBox cbo cboCar Timer tmx tmxCheck การตั้งชื่อ Conventional Name • การตั้งชื่อนิยมตั้งคำนำหน้าชื่อวัตถุ 3 ตัวอักษรแรกตามที่เป็นมาตรฐานเพื่อประโยชน์ • เพื่อให้รู้ว่าเป็นวัตถุหรือคอนโทรลชนิดอะไรเมื่ออ่านโค้ดจะได้ง่ายต่อความเข้าใจ • เพื่อพิมพ์และหาได้คล่องขึ้น (โดยการพิมพ์ 3 ตัวอักษรและใช้ ctrl + space bar เพื่อให้มีเมนูมาให้เลือก) • 3.เพื่อแยกวัตถุกับตัวแปรออกจากกันได้อย่างชัดเจนเมื่ออ่านโค้ด
ปุ่มคำสั่ง (Button) ปุ่มคำสั่งมีหน้าที่ตอบสนองต่อการคลิกเมาส์ของผู้ใช้ที่สั่งงานมายังโปรแกรม การเกิดอีเว็นต์ Click ของปุ่มคำสั่ง 1. เกิดจากการคลิกเมาส์ของผู้ใช้ 2. เกิดจากการกดปุ่ม Enter สำหรับปุ่มคำสั่งที่กำหนดให้กับคุณสมบัติ AcceptButton ของฟอร์ม 3. เกิดจากการกดปุ่ม Esc สำหรับปุ่มคำสั่งที่กำหนดให้กับคุณสมบัติ CancelButton ของฟอร์ม 4. เกิดจากการกดปุ่ม Alt + ตัวอักษรขีดเส้นใต้อยู่ (สามารถกำหนดในคุณสมบัติ Text โดยการใส่ & หน้าตัวอักขระที่ต้องการให้มีการขีดเส้นใต้) 5. เกิดจากการย้ายโฟกัสไปยังปุ่มคำสั่งด้วยการกดปุ่ม Tab และเลือกปุ่มนั้นโดยการกดปุ่ม Spacebar หรือ Enter 6. เกิดจากการเรียกเมดถอด PerformClick ในโค้ดโปรแกรม คุณสมบัติที่สำคัญของปุ่มคำสั่ง ชื่อคุณสมบัติ คำอธิบาย Image กำหนดรูปภาพที่แสดงบนปุ่มคำสั่ง BackgroundImage กำหนดรูปภาพที่แสดงบนพื้นหลังของปุ่มคำสั่ง ImageAlign กำหนดตำแหน่งที่จะแสดงรูปภาพที่เรากำหนดในคุณสมบัติ Image Text ข้อความที่ปรากฏบนปุ่มคำสั่ง TextAlign กำหนดตำแหน่งที่จะแสดงข้อความบนปุ่มคำสั่งมีชิดซ้ายขวาหรือตรงกลาง Font กำหนดรูปแบบฟอนต์ที่จะแสดงบนคอนโทรล Enabled กำหนดให้ปุ่มคำสั่งใช้งานได้หรือไม่ Visible กำหนดให้คอนโทรลสามารถมองเห็นได้ในตอนรันหรือไม่ Controls
คอนโทรลสำหรับรับและแสดงข้อมูลคอนโทรลสำหรับรับและแสดงข้อมูล เลเบล เลเบลเป็นคอนโทรลที่ใช้ในการแสดงข้อมูลให้ผู้ใช้เห็นแต่ผู้ใช้ไม่สามารถแก้ไขข้อมูลได้ คุณสมบัติที่สำคัญของLabel ชื่อคุณสมบัติ คำอธิบาย BorderStyle กำหนดว่าจะมีเส้นขอบหรือไม่รวมทั้งกำหนดรูปแบบของเส้นขอบ Image กำหนดรูปภาพที่แสดงบนเลเบล ImageAlign กำหนดตำแหน่งที่จะแสดงรูปภาพที่เรากำหนดในคุณสมบัติ Image Text ข้อความที่ปรากฎบนเลเบล TextAlign กำหนดตำแหน่งที่จะให้แสดงข้อความในเลเบลมีชิดซ้ายขวาหรือตรงกลาง AutoSize กำหนดให้ขนาดของเลเบลเท่ากับข้อความหรือไม่ (ตามแนวนอน) Controls Click : เป็นเหตุการณ์ที่รับคำสั่งเมื่อกด mouse หนึ่งครั้ง DoubleClick : เป็นเหตุการณ์ที่รับคำสั่งเมื่อกด mouse สองครั้ง Event ของ Label SendToBack : เป็นการสั่งให้ Label ไปอยู่ด้านหลังของคอนโทรลอื่น BringToFront : เป็นการสั่งให้ Label ไปอยู่ด้านหน้าเหนือคอนโทรลอื่น Method ของ Label
ตัวอย่าง ให้ทดลองนำ Label 2 Label มาวางซ้อนทับกันแล้วเขียนคำสั่งนี้ PrivateSub Button1_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles Button1.Click Label2.SendToBack() EndSub PrivateSub Button2_Click(ByVal sender AsObject, ByVal e As System.EventArgs) Handles Button2.Click Label2.BringToFront() EndSub
คุณสมบัติที่สำคัญของTextBoxคุณสมบัติที่สำคัญของTextBox TextBox ใช้รับและแสดงข้อความจากผู้ใช้และให้ผู้ใช้แก้ไขได้ด้วย • 1.Font TextBoxที่พิมพ์ได้เพียง 1 บรรทัดของขนาดความสูงของ TextBox จะเป็นไปตามขนาดตัวอักษรของ Font จะไม่สามารถปรับความสูงได้ • 2.CharacterCasing : เป็นการเปลี่ยนให้ตัวอักษรใน TextBox นั้นเป็นตัวพิมพ์ใหญ่หรือเล็กเปลี่ยนทันทีที่พิมพ์ข้อความลงไปมีประโยชน์ในการทำโปรแกรมเกี่ยวกับฐานข้อมูลเช่น Oracle ซึ่งต้องถูกต้องทั้งตัวพิมพ์ใหญ่และเล็กมีสองลักษณะคือ • a.Upper : เป็นการปรับให้เป็นตัวพิมพ์ใหญ่ • b.Lower : เป็นการบังคับให้เป็นตัวพิมพ์เล็ก • 3.PasswordChar : เป็นการบังตัวอักษรให้เป็นสัญลักษณ์เหมาะกับการใช้งานในการทำหน้าจอ Password โดยให้พิมพ์สัญลักษณ์ที่ต้องการใน Property PasswordChar เช่นถ้าต้องการให้เป็น *
คุณสมบัติที่สำคัญของTextBoxคุณสมบัติที่สำคัญของTextBox 4.ReadOnly : เป็นการทำให้ TextBox นั้นไม่สามารถพิมพ์ข้อความใดๆได้เมื่อโปรแกรมทำงานโดยค่า Default คือ False ถ้า set ให้เป็น True คือการให้เป็น ReadOnly 5.TextAlign : เป็นการจัดเรียงลักษณะของข้อความที่อยู่ใน TextBox มี 3 ลักษณะคือ Left, Right, Center 6.MaxLength : เป็นการกำหนดจำนวนตัวอักษรที่สามารถใส่ใน TextBox นั้นเช่นถ้าใส่ 5 หมายถึงสามารถใส่อักษรได้ 5 ตัวเท่านั้น 7.WordWrap : สามารถขึ้นบรรทัดใหม่ให้อัตโนมัติเมื่อพิมพ์ไปจนถึงขอบด้านขวาแต่จะต้องใช้คู่กับ Property 8. MultiLIne ถึงจะแสดงผลได้ค่า Default คือ True Multiline : เป็นการกำหนดให้ TextBox แสดงผลหรือพิมพ์ข้อความมากกว่าหนึ่งบรรทัดดังนั้นจะทำให้เพิ่มความสูงของTextBoxได้ถ้า set ให้เป็น True ถึงจะทำให้ WordWrap ทำงานได้ค่า Default คือ False Event ของ TextBox 1.TextChanged : ทำงานเมื่อมีการเปลี่ยนข้อความไปจากเดิมอาจเกิดจากการพิมพ์หรือไม่ก็ได้เช่นอาจเกิดจากโค้ดสั่งให้ข้อความใน TextBox เปลี่ยนเหตุการณ์นี้ก็จะเกิดขึ้น 2.KeyPress : ทำงานเมื่อมีการกดแป้นตัวอักษรแต่จะไม่สามารถตรวจสอบการกดแป้นพิมพ์ในกลุ่มCtrl, Alt, Shift, Backspace, F1-12, ปุ่มลูกศร
Method ของTextBox 1. Clear : เป็นการ Clear ข้อความใน TextBox ตัวอย่าง เมื่อเคาะ Enter ให้ Clear ข้อความใน TextBox1 If Asc(TextBox1.KeyChar) = 13 Then TextBox1.Clear() EndIf Asc ใช้แปลงค่าแป้นพิมพ์เป็นรหัส แอสกี 2. AppendText : เป็นการให้ตัวอักษรมาต่อกัน ตัวอย่าง ต้องการรวมสองข้อความใน TextBox2 และ TextBox1 If Asc(TextBox1.KeyChar) = 13 Then TextBox2.AppendText(TextBox1.Text) EndIf
คอนโทรลแสดงตัวเลือก รูปในทูลบ็อกซ์ ชื่อคอนโทรล คำอธิบาย CheckBox ให้ผู้ใช้เลือกได้มากกว่า 1 ตัวเลือก Radio Button ให้ผู้ใช้เลือกได้ 1 ตัวเลือกจากกลุ่มตัวเลือกกลุ่มหนึ่ง List Box ให้ผู้ใช้เลือกโดยการเลื่อนดูรายการที่ต้องการได้ Combo Box ให้ผู้ใช้เลือกคล้ายกับลิสต์บ็อกซ์รวมทั้งให้ผู้ใช้พิมพ์ข้อมูลเข้าไปได้ด้วย CheckedListBox ให้ผู้ใช้เลือกรายการได้โดยเช็คที่หน้ารายการนั้น
1.ให้สร้างโปรเจ็กต์เป็นชนิด Windows Application วางคอนโทรลต่างๆลงบนฟอร์มพร้อมทั้งกำหนดคุณสมบัติต่างๆดังตาราง ชนิดคอนโทรล คุณสมบัติ ค่าที่กำหนดให้ คำอธิบาย Form Name Form1 ชื่อฟอร์ม Label Name Label1 ชื่อเลเบล Text Please select your style. ข้อความที่กำหนดให้เลเบล Check Box Name CheckBox1 ชื่อเช็คบ็อกซ์ Text Bold ข้อความที่กำหนดให้เช็คบ็อกซ์ Checked True กำหนดให้เช็คบ็อกซ์ถูกเช็ค Check Box Name CheckBox2 ชื่อเช็คบ็อกซ์ Text Italic ข้อความที่กำหนดให้เช็คบ็อกซ์ Checked False กำหนดให้เช็คบ็อกซ์ไม่ถูกเช็ค ตัวอย่างการใช้ CheckBox
2.ใส่คำสั่งใน code editor ดังนี้ Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged If CheckBox1.Checked = True Then If CheckBox2.Checked = True Then MsgBox("You selected both bold and italic.", MsgBoxStyle.OKOnly) Else MsgBox("You select bold.", MsgBoxStyle.OKOnly) End If End IfEnd Sub Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged If CheckBox2.Checked = True Then If CheckBox1.CheckAlign = True Then MsgBox("You selected both bold and italic.", MsgBoxStyle.OKOnly) Else MsgBox("You selected italic.", MsgBoxStyle.OKOnly) End If End IfEnd Sub
ทำหน้าที่คล้ายกับเช็คบ็อกซ์แต่คอนโทรลนี้จะสามารถเลือกได้เพียงตัวเลือกเดียวเท่านั้นทำหน้าที่คล้ายกับเช็คบ็อกซ์แต่คอนโทรลนี้จะสามารถเลือกได้เพียงตัวเลือกเดียวเท่านั้น 1.ให้สร้างโปรเจ็กต์เป็นชนิด Windows Application วางคอนโทรลต่างๆลงบนฟอร์มพร้อมทั้งกำหนดคุณสมบัติต่างๆดังตาราง ชนิดคอนโทรล คุณสมบัติ ค่าที่กำหนดให้ คำอธิบาย Form Name Form1 ชื่อฟอร์ม Label Name Label1 ชื่อเลเบล Text Please select your style. ข้อความที่กำหนดให้เลเบล Radio Button Name RadioButton1 ชื่อเรดิโอบัตทอน Text Bold ข้อความที่กำหนดให้เรดิโอบัตทอน Checked True กำหนดให้เรดิโอบัตทอนถูกเลือก Radio Button Name RadioButton2 ชื่อเรดิโอบัตทอน Text Italic ข้อความที่กำหนดให้เรดิโอบัตทอน Checked False กำหนดให้เรดิโอบัตทอนไม่ถูกเลือก ตัวอย่างการใช้ Radio Button
2.ใส่คำสั่งใน code editor ดังนี้ Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged If RadioButton1.Checked = True Then MsgBox("You selected bold.", MsgBoxStyle.OKOnly) End IfEnd Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged If RadioButton2.Checked = True Then MsgBox("You selected italic.", MsgBoxStyle.OKOnly) End IfEnd Sub 3.ผลการทำงาน
ลิสต์บ็อกซ์เป็นคอนโทรลที่ใช้แสดงรายการผู้ใช้สามารถคลิกเมาส์เลือกตัวเลือกที่ต้องการได้จากรายการลิสต์บ็อกซ์เป็นคอนโทรลที่ใช้แสดงรายการผู้ใช้สามารถคลิกเมาส์เลือกตัวเลือกที่ต้องการได้จากรายการ การเพิ่มรายการในลิสต์บ็อกซ์ ตัวอย่างการใช้ List Box 1 2 พิมพ์รายการที่ต้องการแสดงให้ผู้ใช้เลือก 3
3.ทดลองรันโปรแกรม 1.ให้สร้างโปรเจ็กต์เป็นชนิด Windows Application วางคอนโทรลต่างๆลงบนฟอร์มพร้อมทั้งกำหนดคุณสมบัติต่างๆดังตาราง 1.เพิ่มข้อมูลโดยการ Add ขณะรันโปรแกรม : เป็นการเพิ่ม Item ใน ListBox โดยจะต่อท้ายเสมอ ชนิดคอนโทรล 2.ใส่คำสั่งใน code editor ของปุ่ม Addดังนี้ Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ListBox1.Items.Add(TextBox1.Text)End Sub คุณสมบัติ ค่าที่กำหนดให้ Form Name Form1 TextBox Name TextBox1 ListBox Name ListBox1 Button Name Button1 Text Add ตัวอย่างการนำไปใช้
2.ลบข้อมูลโดยการ Remove ขณะรันโปรแกรม : เป็นการremove Item ใน ListBox ชนิดคอนโทรล Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ListBox1.Items.Remove(TextBox1.Text)End Sub คุณสมบัติ ค่าที่กำหนดให้ Form Name Form1 TextBox Name TextBox1 ListBox Name ListBox1 Button Name Button1 Text Add ฺButton Name Button2 Text Remove 1 2 3
คอมโบบ็อกซ์เป็นคอนโทรลที่แสดงรายการให้ผู้ใช้เลือก (โดยรายการที่เลือกจะอยู่แถวบนสุด) หรือพิมพ์ข้อมูลลงไปได้ทันที ไม่เหมือนกับลิสต์บ็อกซ์ที่เลือกจากรายการได้เพียงอย่างเดียวเท่านั้น การกำหนดค่ารูปแบบของคอมโบบ็อกซ์ รูปแบบ DropDown ค่าที่กำหนดให้ Dropdown ComboBoxStyle.DropDown Simple ComboBoxStyle.Simple Dropdownlist ComboBoxStyle.DropDownList ตัวอย่างการใช้ Combo Box
Simple Dropdownlist
โฟกัส (Focus) ของคอนโทรล โฟกัสเป็นสิ่งที่ใช้บ่งบอกว่าคอนโทรลใดบนฟอร์มกำลังตอบสนองต่อการใส่ข้อมูลของผู้ใช้อยู่ เราสามารถเปลี่ยนโฟกัสไปยังคอนโทรลต่างๆได้โดย 1. เลือกคอนโทรลที่ต้องการให้ถูกรับโฟกัสโดยการกด <Tab> ไปยังคอนโทรล, คลิกเมาส์หรือกดคีย์ลัด (ShortCut) ไปยังคอนโทรลนั้นๆ 2. ใช้เมดถอด Focus ของคอนโทรลที่ต้องการถูกรับโฟกัสจากคำสั่ง Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox1.Focus()End Sub คอนโทรลที่ได้รับโฟกัสจะมีเส้นกรอบล้อมรอบ
ตัวอย่างโปรแกรมเกี่ยวกับโฟกัสของคอนโทรลตัวอย่างโปรแกรมเกี่ยวกับโฟกัสของคอนโทรล ชนิดคอนโทรล Private Sub TextBox1_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Leave If Not IsNumeric(TextBox1.Text) Then MsgBox("You must enter numeric value.", MsgBoxStyle.OKOnly) TextBox1.Focus() End IfEnd Sub คุณสมบัติ ค่าที่กำหนดให้ คำอธิบาย Form Name Form1 ชื่อฟอร์ม TextBox Name TextBox1 ชื่อเท็กบ็อกซ์ Text "" ข้อความที่กำหนดให้เท็กบ็อกซ์ TextBox Name TextBox2 ชื่อเท็กบ็อกซ์ Text "" ข้อความที่กำหนดให้เท็กบ็อกซ์ 1 2 3
การกำหนดลำดับการเลื่อนโฟกัส (Tab Order) เมื่อกดปุ่ม <Tab> จะมีการเลื่อนโฟกัสจากคอนโทรลหนึ่งไปยังอีกคอนโทรลหนึ่งบนฟอร์มเราสามารถกำหนดลำดับในการเลื่อนโฟกัสผ่านทางคุณสมบัติ TabIndex ซึ่งปกติ VB.NET จะกำหนดให้ลำดับในการเลื่อนโฟกัสปยังคอนโทรลต่างๆเรียงตามลำดับที่เราสร้างขึ้นในตอนออกแบบโปรแกรม กดปุ่ม <Tab>
การกำหนดลำดับการเลื่อนโฟกัสให้กับคอนโทรลให้เเลือกเมนู View > Tab Order ซึ่งบนคอนโทรลแต่ละตัวจะขึ้นหมายเลข Tab Order ให้เราคลิกเมาส์บนคอนโทรลตามลำดับ Tab Order ที่เราต้องการ
จุดประสงค์ของการใช้ไทเมอร์คือให้มีการทำงานบางอย่างทุกๆช่วงเวลาที่เรากำหนดซึ่งจะช่วยให้การทำงานบางอย่างถูกทำแบบฉากหลังพร้อมกับมีโปรแกรมอื่นทำงานอยู่ด้วยจุดประสงค์ของการใช้ไทเมอร์คือให้มีการทำงานบางอย่างทุกๆช่วงเวลาที่เรากำหนดซึ่งจะช่วยให้การทำงานบางอย่างถูกทำแบบฉากหลังพร้อมกับมีโปรแกรมอื่นทำงานอยู่ด้วย คุณสมบัติที่สำคัญของไทเมอร์ ชื่อคุณสมบัติ อีเว็นต์ที่สำคัญของไทเมอร์ ชื่อคุณสมบัติ คำอธิบาย คำอธิบาย Interval Tick เป็นคุณสมบัติที่บอกว่าต้องการให้เกิดอีเว็นต์ Tick เว้นช่วงเวลาห่างกันเท่าไร เป็นอีเว็นต์ที่เกิดขึ้นในทุกช่วงเวลาที่เราได้กำหนดไว้ในคุณสมบัติ Interval Enabled เป็นคุณสมบัติที่บอกว่าไทเมอร์นี้ทำงานได้ ไทเมอร์Timer