1
Chapter 2Object & Form
SUCHADA PUNNOIDept. of Computer Science & Information Technology
http://computer.pcru.ac.th/KuBo/
2
Objectอ็�อ็บเจ็�กต์ (objects) คื�อสิ่��งใด ๆ
ก็�ตาม ซึ่��งม�คื�ณสิ่มบั�ต� (Properties) ที่��บั�งบัอก็คืวามเป็�นต�วเองในขณะน�"น และสิ่ามารถแสิ่ดงพฤต�ก็รรม (Method) ของต�วเองออก็มาได* เช่�น คือนโที่รลต�าง ๆ
3
Properties คุ�ณสมบ�ต์� (properties) คื�อสิ่��งที่��สิ่ามารถบั�งบัอก็ถ�งคืวามเป็�นว�ตถ�
และอยู่.�ภายู่ในต�วว�ตถ�ซึ่��งสิ่ามารถเป็ล��ยู่นแป็ลงได*เช่�น ร.ป็ร�าง ล�ก็ษณะ คืวามก็ว*าง คืวามยู่าว ฯลฯ สิ่2าหร�บัในแต�ละคือนโที่รล หร�อออบัเจ็�ก็ต5 อาจ็จ็ะม�คื�ณสิ่มบั�ต�ที่��เหม�อนก็�น หร�อต�างก็�นก็�ได* ข�"นอยู่.�ก็�บัหน*าที่��ของแต�ละคือนโที่รล คือนโที่รลหร�อออบัเจ็�ก็ต5หน��ง ๆ จ็ะม�คื�ณสิ่มบั�ต�มาก็มายู่ หลายู่อยู่�าง ยู่��งสิ่ามารถป็ร�บัแต�งคื�ณสิ่มบั�ต�ให*ตรงก็�บัคืวามต*องก็ารมาก็เพ�ยู่งใด โป็รแก็รมป็ระยู่�ก็ต5ก็�จ็ะม�ป็ระสิ่�ที่ธิ�ภาพมาก็ข�"นเที่�าน�"น ซึ่��งถ�อได*ว�าเป็�นจ็�ดเร��มต*นได*ด� ในก็ารพ�ฒนาโป็รแก็รมป็ระยู่�ก็ต5สิ่ามารถป็ร�บัแต�ง คื�ณสิ่มบั�ต�ได*จ็าก็หน*าต�างProperties หร�อป็ร�บัแต�งด*วยู่ก็ารเข�ยู่นโคื*ดก็�ได*จ็ะม�คื�ณสิ่มบั�ต�บัางต�ว ที่��ไมโคืรซึ่อฟที่5แนะน2าให* ป็ร�บัแต�งด*วยู่ก็ารเข�ยู่นโคื*ด และบัางต�วป็ร�บัแต�งด*วยู่ก็ารแก็*ไขในหน*าต�าง Properties และในที่างป็ฏิ�บั�ต�ไม�จ็2าเป็�นต*องป็ร�บัแต�งที่�ก็ ๆ คื�ณสิ่มบั�ต� เพราะ Visual Basic ได*ต�"งคื�าเร��มต*น ไว*ให*แล*ว ซึ่��งก็�สิ่ามารถใช่*งานได*ในระด�บัหน��ง
4
Method เมธอ็ด (methods) หมายู่ถ�ง อาก็ารที่��ว�ตถ�ใด ๆ
แสิ่ดงออก็มาหร�อถ.ก็ให*แสิ่ดงออก็มาโดยู่พฤต�ก็รรมใดๆ ของว�ตถ�น�"น จ็ะม�ผลเช่��อมโยู่งไป็ถ�งข*อม.ลคื�ณล�ก็ษณะภายู่ในว�ตถ�เองด*วยู่ อาจ็ก็ล�าวได*ว�า เป็�นก็ารคืวบัคื�มก็ารที่2างานของคือนโที่รล หร�อออบัเจ็�ก็ต5น��นเอง จ็ะใช่*จ็�ดเป็�นต�วคื��นระหว�างช่��อคือนโที่รลก็�บัเมธิอด ซึ่��งจ็ะเห�นได*ว�า คื�ณสิ่มบั�ต�และเมธิอดม�คืามใก็ล*เคื�ยู่งก็�นมาก็ เน��องจ็าก็จ็ะใช่*จ็�ด . เป็�นต�วแยู่ก็ระหว�าง ช่��อคือนโที่รลก็�บัคื�ณสิ่มบั�ต� หร�อช่��อคือนโที่รลก็�บัเมธิอด จ็ะม�คืวามแตก็ต�างก็�น ในแง�ของก็ารคืวบัคื�มคือนโที่รล หร�อออบัเจ็�ก็ต5 ซึ่��งจ็ะได*ศึ�ก็ษาในห�วข*อต�อ ๆ ไป็
5
Form
ฟอร5ม (Form) คื�อ หน*าต�างที่��ใช่*สิ่2าหร�บัแสิ่ดงผล โดยู่จ็ะม� ActiveX Controls ต�าง ๆ บัรรจ็�อยู่.�ภานใน ม�หน*าที่��สิ่2าหร�บัต�ดต�อก็�บัผ.*ใช่*งาน โดยู่ Form ก็�ถ�อว�าเป็�นออบัเจ็�ก็ต5ด*วยู่
ประเภทขอ็งฟอ็รม แบั�งออก็ได*เป็�น 2 ป็ระเภที่คื�อ
6
SDI Form (Single Document Interface Form)
เป็�นฟอร5มที่��สิ่ามาระที่2างานได*อยู่�างอ�สิ่ระ สิ่ามารถที่��จ็ะวางเคืร��องม�อต�าง ๆ ได*
7
MDI Form (Multiple Document Interface Form)
เป็�นฟอร5มที่��ใช่*บัรรจ็� SDI Form ไว* โดยู่ SDI Form ที่��จ็ะบัรรจ็�อยู่.�ภายู่ใต* MDI Form จ็ะต*องก็2าหนดคื�ณสิ่มบั�ต�ของฟอร5มให*เป็�น MDI child ก็�อน สิ่2าหร�บั MDI Form จ็ะสิ่ามารถวางเคืร��องม�อได*เพ�ยู่งบัางอยู่�างเที่�าน�"น
8
ใน Project แต�ละ Project น�"นจ็ะม� SDI Form ได*ไม�จ็2าก็�ด แต�จ็ะม� MDI Form ได*เพ�ยู่งแคื� 1 ฟอร5มเที่�าน�"น และสิ่2าหร�บั Project ใดก็�ตามที่��ม�ก็ารเร�ยู่ก็ใช่* MDI Form และได*ก็2าหนดคื�ณสิ่มบั�ต�ของ SDI Form ให*เป็�น MDI Child เม��อที่2าก็ารป็<ด MDI Form แล*วน�"นจ็ะม�ผลที่2าให* SDI Form ที่��เป็�น MDI Child ถ.ก็ป็<ดตามไป็ด*วยู่
9
Properties Of FormName ใช่*สิ่2าหร�บัก็2าหนดช่��อBackCo
lor ใช่*สิ่2าหร�บัก็2าหนดสิ่�พ�"น
BorderStyle
ใช่*สิ่2าหร�บัก็2าหนดร.ป็แบับัของเสิ่*นขอบั
Caption ใช่*สิ่2าหร�บัก็2าหนดข*อคืวามบัน Title Bar ของ
Form
ControlBox
ใช่*สิ่2าหร�บัก็2าหนดให*ม�ป็�=มคืวบัคื�มของ Form
Enabled
ใช่*สิ่2าหร�บัก็2าหนดให* Form สิ่ามารถใช่*งานได*หร�อไม�
Font ใช่*สิ่2าหร�บัก็2าหนดต�วอ�ก็ษรของข*อคืวาม
อ�ป็ก็รณ5ต�าง ๆ ใน Form
ForeColor
ใช่*สิ่2าหร�บัก็2าหนดสิ่�ต�วอ�ก็ษรของข*อคืวามอ�ป็ก็รณ5ต�าง ๆ ใน Form
10
Properties Of FormMaxButton
ใช่*สิ่2าหร�บัก็2าหนดให*ม�ป็�=มขยู่ายู่ขนาดของ Form
MDI Child ใช่*สิ่2าหร�บัก็2าหนดให* Form ม�คื�ณสิ่มบั�ต�เป็�น Form ยู่�อยู่ของ MDI Form
MinButton ใช่*สิ่2าหร�บัก็2าหนดให*ม�ป็�=มยู่�อขนาดของ Form
Moveable ใช่*สิ่2าหร�บัก็2าหนดให* Form สิ่ามารถยู่*ายู่ต2าแหน�งได*หร�อไม�
Picture ใช่*สิ่2าหร�บัก็2าหนดร.ป็บัน Form
ShowInTaskbar
ใช่*สิ่2าหร�บัก็2าหนดให*ม�ไอคือนแสิ่ดงบัน Taskbar
StartUpPosition
ใช่*สิ่2าหร�บัก็2าหนดต2าแหน�งก็ารแสิ่ดง Form บันจ็อภาพ
Visible ใช่*สิ่2าหร�บัก็2าหนดให*ซึ่�อนหร�อแสิ่ดง Form
WindowState
ใช่*สิ่2าหร�บัก็2าหนดขนาดของ Form เม��อม�ก็ารที่2างาน
11
Method Of FormHide เป็�นก็ารที่2างานที่��สิ่� �งให*ซึ่�อน Form
Line เป็�นก็ารที่2างานที่��สิ่� �งให*วาดเสิ่*นลงบัน Form
Move เป็�นก็ารที่2างานที่��สิ่� �งให* Form ยู่*ายู่ต2าแหน�งไป็ยู่�งต2าแหน�งที่��ก็2าหนด
Print เป็�นก็ารที่2างานที่��สิ่� �งให*พ�มพ5 Form ออก็ที่างเคืร��องพ�มพ5
Show เป็�นก็ารที่2างานที่��สิ่� �งให*แสิ่ดง FormUnload
เป็�นก็ารที่2างานที่��สิ่� �งให*ยู่ก็เล�ก็ก็ารใช่*งานของ Form
12
Event Of FormActivate
จ็ะเก็�ดข�"นเม��อเล�อก็ใช่*งาน Form ก็รณ�ที่��ม�ก็ารเป็<ด Form หลายู่ ๆ Form พร*อมก็�น
Initialize
จ็ะเก็�ดข�"นเม��อ Form ถ.ก็โหลดเข*าไป็ในหน�วยู่คืวามจ็2า
Load จ็ะเก็�ดข�"นเม��อ Form แสิ่ดงผลหล�งจ็าก็ที่��ถ.ก็โหลดเข*าไป็ในหน�วยู่คืวามจ็2า
QueryUnload
จ็ะเก็�ดข�"นเม��อม�ก็ารป็<ด Form
Terminate
จ็ะเก็�ดข�"นเม��อ Form ถ.ก็ลบัออก็จ็าก็หน�วยู่คืวามจ็2า
Unload จ็ะเก็�ดข�"นเม��อ Form ถ.ก็ยู่ก็เล�ก็ก็ารใช่*งาน
13
การก�าหนดคุ�า Propertiesก็ารก็2าหนดคื�าพร�อพเพอร5ต�"ของ Form
สิ่ามารถจ็ะก็2าหนดได* 2 ว�ธิ�ด*วยู่ก็�นคื�อ 1. ก็2าหนดจ็าก็ Properties Window 2. ก็2าหนดโดยู่ก็ารเข�ยู่นช่�ดคื2าสิ่��งใน Code Editor
14
ก็ารเพ��ม Form หร�อโมด.ลอ��นๆ ก็ารเพ��ม Form หร�อโมด.ลอ��นๆ เข*ามาในสิ่ภาพ
แวดล*อม1.ให*คื�ณเล�อก็เมน. Project จ็าก็น�"น ให*คื�ณเล�อก็ช่น�ด
ของโมด.ล ที่��คื�ณต*องก็ารเพ��มเข*ามาในสิ่ภาพแวดล*อม และถ*าในก็รณ�ที่��คื�ณต*องก็ารเพ��ม Form เข*ามาในโป็รเจ็�ก็ต5 คื�ณสิ่ามารถคืล�>ก็ที่��ป็�=ม บันที่.ลบัาร5เลยู่ก็�ได*
15
ไอคือนต�างๆ บันหน*าต�าง Add Form สิ่2าหร�บัไอคือนต�างๆ ม�คืวามหมายู่ด�งน�"
เป็�นฟอร5มว�างๆ แบับัป็ก็ต�เป็�นก็ารใช่*คืวามสิ่ามารถของ VB Data Form Wizard เพ��อสิ่ร*างแบับัฟอร5มรายู่งาน ที่��ต�ดต�อก็�บัฐานข*อม.ลโดยู่ผ�านคือนโที่รล Data
เป็�นแบับัฟอร5ม Abount สิ่2าเร�จ็ร.ป็ คื�ณอาจ็จ็ะต*องป็ร�บัแต�งเพ��อให*ได*ฟอร5ม Abount ตามที่��คื�ณต*องก็ารเป็�นฟอร5มที่��ม�ล�ก็ษณะเหม�อนก็�บั browser คืล*ายู่ๆ ก็�บั Internet Explorer หร�อ Netscapte Communicator
16
การเพิ่�!มต์�ว Control ลงบนฟอ็รม Visual Basic ใช่*คื2าว�า วาดต�ว control สิ่2าหร�บัก็าร
เพ��มต�ว control เช่�นต*องก็ารเพ��ม Text box, Label และ Command button1 . คืล�ก็ที่�� tool ของ Text box บัน Toolbox2 . ยู่*ายู่เมาสิ่5 หร�อ พอยู่เตอร5 ไป็ที่��ฟอร5ม เมาสิ่5จ็ะเป็ล��ยู่นเป็�น
ก็าก็บัาที่3 . วางเมาสิ่5ที่��เป็�นร.ป็ก็าก็บัาที่ในต2าแหน�งที่��เป็�นม�มซึ่*ายู่ด*านบัน
ของต�ว control ลาก็ก็าก็บัาที่ โดยู่ก็ดเมาสิ่5ป็�=มซึ่*ายู่คื*างไว* จ็นก็ระที่��งต�ว control ม�ขนาดที่��ต*องก็าร แล*วป็ล�อยู่ป็�=มบันเมาสิ่5
17
การต์�$งคุ�าคุ�ณสมบ�ต์�ขอ็งต์�ว Control
ต�ว control แต�ละต�วสิ่ามารถก็2าหนดคื�ณล�ก็ษณะได*โดยู่ก็ารต�"งคื�าคื�ณสิ่มบั�ต�เพ��อก็2าหนดพฤต�ก็รรม และคืวามสิ่วยู่งาม เช่�น Label ให*ก็2าหนดคื�ณสิ่มบั�ต� Caption สิ่2าหร�บัข*อคืวามที่��เหมาะสิ่ม คื�ณสิ่มบั�ต� Font สิ่2าหร�บัล�ก็ษณะต�วอ�ก็ษร คื�ณสิ่มบั�ต� Name สิ่2าหร�บัก็ารต�"งช่��อต�ว control ที่��สิ่��อคืวามก็�บัก็ารใช่*งาน สิ่�วน Text box คื�ณสิ่มบั�ต� Text เป็�นข*อคืวามที่�� ป็ราก็ฏิภายู่ในต�ว control ซึ่��งสิ่ามารถลบัเป็�นข*อคืวามว�างได*
18
การต์�$งคุ�าคุ�ณสมบ�ต์�ขอ็งต์�ว Controlwindow ของตารางคื�ณสิ่มบั�ต� ป็ระก็อบัด*วยู่Object Box แสิ่ดงช่��อของอ@อบัเจ็คืที่��ผ.*ใช่*เล�อก็ คืล�ก็ที่��ล.ก็ศึร
ด*านขวาจ็ะแสิ่ดงรายู่ก็ารอ@อบัเจ็คืของฟอร5มป็Aจ็จ็�บั�น ซึ่��งสิ่ามารถเป็ล��ยู่นอ@อบัเจ็คืโดยู่ก็ารคืล�ก็เล�อก็จ็าก็ Combo box
Sort tabs เล�อก็ล�ก็ษณะก็ารแสิ่ดงรายู่ก็ารคื�ณสิ่มบั�ต� โดยู่ Alphabetic เป็�นก็ารแสิ่ดงรายู่ก็ารตามต�วอ�ก็ษร หร�อ Categorized เป็�นแสิ่ดงแบับัล2าด�บัช่�"นด*วยู่แบั�งเป็�นก็ล��มที่างตรรก็ะ
รายการคุ�ณสมบ�ต์� (Properties list ) คือล�มน5ที่างซึ่*ายู่จ็ะแสิ่ดงรายู่ก็ารคื�ณสิ่มบั�ต�ของอ@อบัเจ็คื และคือล�มน5ขวาเป็�นคื�าของคื�ณสิ่มบั�ต� ซึ่��งก็ารต�"งคื�าเป็�นก็ารแก็*ไขคื�าในคือล�มน5ขวา
19
การต์�$งคุ�าคุ�ณสมบ�ต์�ขอ็งต์�ว Control
20
ก็าร Run โป็รเจ็�ก็ต5
ม�สิ่ถานะ Active อยู่.� โดยู่ม�คืวามหมายู่ด�งน�" หมายู่ถ�ง ให*หยู่�ดก็ารร�นโป็รเจ็�ก็ต5
หมายู่ถ�ง ให*หยู่�ดร�นโป็รเจ็�ก็ต5ช่��วคืราวเพ��อ แก็*ไขโคื*ด ป็�=ม
ป็�=ม
การทดสอ็บ (run) โปรเจ็�กต์1.ให*คื�ณเล�อก็เมน. Run/Start หร�อก็ดป็�=ม F5 ที่��คื�ยู่5บัอร5ด หร�อก็ดป็�=ม ที่��ที่.ลบัาร5 2.ที่��ฟอร5มจ็ะม�ก็ารเป็ล��ยู่นร.ป็แบับั ไม�ม�เสิ่*นก็ร�ด และจ็ะป็ราก็ฎหน*าต�าง Immediate ด*านล�างของสิ่ภาพแวดล*อม 3.ถ*าคื�ณม�ก็ารสิ่��งให*พ�มพ5โดยู่ผ�านที่างคื2าสิ่��ง Debug.Print ที่��หน*าต�าง Immediate จ็ะแสิ่ดงผลจ็าก็ก็ารป็ระมวลผลด*วยู่ 4.คื�ณจ็ะสิ่�งเก็ตเห�นว�าที่��บันที่.ลบัาร5 จ็ะม�ป็�=ม และ
21
การเข'ยนคุ�าส�!งคื2าสิ่��งของ Visual Basic แบั�งเป็�นก็ล��มเร�ยู่ก็ว�า procedure โดยู่ event procedure ม�คื2าสิ่� �งที่��ป็ระมวลผลเม��อเก็�ด event ข�"น ซึ่��ง event procedure จ็ะเป็�นช่��อของต�ว control ตามด*วยู่เสิ่*นใต* (under score ) และช่��อ event เช่�น command 1_Click
22
ว�ธ'สร(าง Event Procedure 1 . ใน Object List Box เล�อก็ช่��อของอ@
อบัเจ็คืในฟอร5มตามต�วอยู่�าง เล�อก็ Form2 . ใน Procedure List Box เล�อก็ช่��อ
ของ event สิ่2าหร�บั โดยู่ป็ก็ต�คื�าเร��ม procedure ของฟอร5ม คื�อ Load event และในต�วอยู่�างน�"ต*องก็ารใช่* Load event เช่�นก็�น
23
ว�ธ'สร(าง Event Procedure
3 . พ�มพ5คื2าสิ่��งระหว�างป็ระโยู่คืคื2าสิ่��ง Sub และ End Sub
Private Sub Form_Load () ' ต�"งคื�าเม��อโหลดฟอร5มให*ก็�บั label1
Label1.Caption = " Hello ! Jonior Programmer "
Label1.Alignment = 2
Label1.FontBold = True
Label1.FontSize = 18
' ป็Cองก็�นก็ารเข*าถ�ง text1 Text1.Locked = True
End Sub
24
Comment Comment ในภาษา VB จ็ะใช่*สิ่�ญล�ก็ษณ5 ‘ (Single quote ) ก็ารใสิ่�
comment น�"นเพ��อจ็�ดป็ระสิ่งคื5เป็�นก็ารอธิ�บัายู่ หร�อขยู่ายู่คืวาม เพ��อให*เก็�ดคืวามเข*าใจ็มาก็ข�"น ซึ่��งต�ว compiler จ็ะไม�น2าบัรรที่�ดที่��ม�สิ่�ญล�ก็ษณ5 ‘ (Single quote ) ไป็ complier เป็ร�ยู่บัเสิ่ม�อนว�าไม�ม�บัรรที่�ดน�"นอยู่.�ใน code
เช่�น Private Sub Command2_Click()
‘ clear คื�าใน text1,2,3 ให*เป็�นคื�าว�าง Comment Line
Text1.Text = "" Text2.Text = "" Text3.Text = ""End Sub