Ch
ng 6: S d ng Winform
ươ
ử ụ
ế
Ch6 - S d ng Winform
1
ử ụ
Phan Tr ng Ti n ọ Department of Software Engineering Hanoi University of Agriculture Office location: 3rd floor, Administrative building Office phone: 8276346, Ext: 132 Email:phantien84@gmail.com
N i dung chính
ộ
ổ ạ ấ ử ụ
ử ụ
ả
ự ế ủ ừ
2
1. T ng quan 2. T i sao s d ng Windows Forms ử ụ 3. C u trúc Windows Forms 4. S d ng Windows Forms 5. Demo: Th c hi n Windows Forms ệ ự 6. S d ng các Control 7. Demo: Th c thi ch c năng kéo và th ứ 8. Th a k c a Windows Forms 9. Demo: S d ng th u k Windows Forms ừ Ch6 - S d ng Winform ử ụ
ử ụ ế
M c đích c a ch
ng
ụ
ủ
ươ
Ch ươ c n thi ầ
ế
các l
ng này cung c p sinh viên ki n th c ứ t đ t o các ng d ng Winform. ế ể ạ ấ ứ
ủ
ng th c
ớ
i ích c a Windows Forms Mô t S d ng các thu c tính m i và các ph ộ
ươ
ứ
t code cho các s ki n đi u khi n
ề
ể
ả ế
form khác
ả ử ụ c a Windows Forms ủ Vi ự ệ ế S d ng các control m i và các control c i ti n ớ ử ụ Thêm và ch nh s a menu ỉ T o m t form đ ộ
c th a k t ừ
ử ượ
ế ừ
ạ
Ch6 - S d ng Winform
3
ử ụ
ụ Sau bài này sinh viên có th :ể ợ
1. T ng quan
ổ
B n s n m đ
c các đ c đi m có
ẽ ắ
ượ
ể
ặ
ạ ẵ ổ
ứ
ươ
ộ ng th c, các s ki n. ự ệ B n s h c cách t o m t vài d ng ạ ộ h p tho i chu n c a Windows. ẩ
s n trong Windows Forms, cách thay đ i các form và control, và các thu c tính, các ph ẽ ọ ạ ượ
ế
c tính th a k , cho phép b n ỹ
ạ ủ ừ ậ ậ
ạ ng đ i ố
ướ
ủ
Ch6 - S d ng Winform
4
ạ ộ N m đ ắ s d ng k thu t l p trình h ử ụ ng vào các form c a b n. t ạ ượ ử ụ
2. T i sao s d ng Windows ử ụ
ạ Forms
ậ ả
Có t p h p các ợ cotrol phong phú Nhi u ki u giao ể
H tr kh năng ỗ ợ truy c p qua các ậ thu c tính c a ộ control
ủ
H tr c i ti n vi c ỗ ợ ả ế
ề di nệ
ệ
ế ng có in nấ
H tr c i ti n v ề ỗ ợ ả ế đ h a – GDI+ ồ ọ
H tr th a k ỗ ợ ừ Các đ i t ố ượ th c i ti n ể ả ế Thu n l ậ ợ k forms ế
Ch6 - S d ng Winform
5
ử ụ
i cho thi t ế
3. C u trúc c a Windows Forms
ủ
ấ
ấ
ủ
ớ
Phân c p các l p c a Windows Forms S d ng l p
ử ụ
ớ
Windows.Forms.Appication Nghiên c u Code Behind c a
ứ
ủ
Windows Forms
Ch6 - S d ng Winform
6
ử ụ
ủ
Phân c p các l p c a ớ ấ Windows Forms
Ch6 - S d ng Winform
7
ử ụ
ử ụ
ớ
S d ng l p Windows.Forms.Application
ụ
ứ
B t đ u và k t thúc ng d ng ế
ị
ầ
ế ụ
ứ
ng th c
ứ DoEvents
ươ
t l p thông tin và truy v n thông tin ng d ng ấ
ứ
ụ
ắ ầ Sub Main( ) Dim frmFirst as New Form1( ) frmFirst.Show( ) ‘Hi n th form đ u tiên ể Application.Run( ) ‘Cho phép ng d ng ti p t c sau khi form đóng ụ End Sub Dùng ph Thi ế ậ Dim strAppPath As String strAppPath = Application.StartupPath ng d n ch a n i cài file ch y ‘l y đ ạ ơ ứ ấ
ườ
ẫ
Ch6 - S d ng Winform
8
ử ụ
ủ
ứ
Nghiên c u Code Behind c a Windows Forms
Imports
Truy c p các ch c năng trong namespace
ứ ậ
tham chi u trong assemblies ế
Class
Imports Winforms = System.Windows.Forms
ừ ế ừ System.Windows.Forms.Form
9
ử ụ
Th k t Contructor – Sub New() Initializer – Sub InitializeComponent() Detructor – Sub Dispose() Ch6 - S d ng Winform
4. S d ng Windows Forms
ử ụ
ự ệ
S d ng Form Properties S d ng Form Methods S d ng Form Events Đi u khi n s ki n ể T o Form MDI S d ng các d ng h p tho i chu n
ử ụ ử ụ ử ụ ề ạ ử ụ
ạ
ạ
ẩ
ộ
Ch6 - S d ng Winform
10
ử ụ
S d ng Form Properties
ử ụ
ặ
ộ
Kích trên Form ho c Control s có ẽ h p tho i Form ạ Properties t ngứ
Ch6 - S d ng Winform
11
ử ụ
ng ươ
S d ng Form Properties
ử ụ
DialogResult Font Opacity MaximumSize và MinimumSize TopMost AcceptButton và CancelButton
Ch6 - S d ng Winform
12
ử ụ
S d ng Form Methods
ử ụ
CenterToScreen và CenterToParrent Close Show và ShowDialog
Ch6 - S d ng Winform
13
ử ụ
S d ng Form Events
ử ụ
Activated và DeActivate
c kích ho t
ượ
ạ
ng tác
ươ
ặ
DeActive là x y ra khi Form m t focus.
Activated là x y ra khi Form đ ả ho c ng dùng t ả
ấ
X y ra khi Form đang chu n b đóng.
ẩ
ị
c Dispose
FormClosing ả FormClosed ả
X y ra sau s ki n Closing và tr ự ệ
ướ
X y ra khi menu nh n và m t focus.
ả
14
MenuStart và MenuComplete ấ ậ Ch6 - S d ng Winform ử ụ
Đi u khi n s ki n ể Đi u khi n nhi u s ki n v i m t th t c ủ ụ ớ
ự ệ ự ệ
ề ề
ể
ề
ộ
Private Sub AddOrEditButtonClick(ByVal sender As System.Object,ByVal e As
System.EventArgs) Handles btnAdd.Click, btnEdit.Click
S d ng AddHandler
ử ụ Là t
khóa dùng đ add các s ki n cho Form ho c cho
ự ệ
ể
ặ
ừ Control.
Private Sub NavigateBtnClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
MessageBox.Show("Moving record")
End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load AddHandler btnNext.Click, AddressOf NavigateBtnClick End Sub
Ch6 - S d ng Winform
15
ử ụ
Demo dùng s ki n
ự ệ
T o m t ng d ng d ng Winform hi n th ị
ộ ứ ụ ể ạ ạ
Code cho các s ki n
các thông tin trong c a sủ ổ
Form1_Activated Debug.WriteLine("Activated") Form1_Closed Debug.WriteLine("Closing") Form1_Deactivate
Debug.WriteLine("Deactivated")
Form1_SizeChanged Debug.WriteLine("Size
changed")
Ch6 - S d ng Winform
16
ử ụ
ự ệ
IsMdiContainer
ạ
Tao Form MDI T o Form cha ạ
s ki n Form_Load
ộ ở ự ệ
B n có th đ t thu c tính ể ặ Ho c code ặ Me.IsMdiContainer = True Me.WindowState = FormWindowState.Maximized
T o các Form con
ạ
Dim doc As Form2 = New Form2( ) doc.MdiParent = Me doc.Show( )
Truy c p các Form con S p x p các Form con
Ch6 - S d ng Winform
17
ử ụ
ậ ế ắ
ộ
S d ng các d ng h p tho i ạ ạ ử ụ chu nẩ MsgBox
If MsgBox("Continue?", MsgBoxStyle.YesNo + MsgBoxStyle.Question,"Question")_
L p MessageBox
= MsgBoxResult.Yes Then ... End If ớ
If MessageBox.Show("Continue?", "Question", _ MessageBoxButtons.YesNo, MessageBoxIcon.Question) _ = DialogResult.Yes Then ... End If InputBox
Ch6 - S d ng Winform
18
ử ụ
5. Demo: Th c hi n Windows
ự
ệ
Forms
Properties và
ạ
ẽ ọ
B n s h c cách dùng ủ
ả
Methods c a Window Form, bao g m ồ t o c form riêng, đ trong su t c a ố ủ ộ ạ form, và thanh cu n t
đ ng cho form.
ộ ự ộ
Ch6 - S d ng Winform
19
ử ụ
6. S d ng các control
ử ụ
ủ
ủ
i s d ng
Các control m iớ S d ng Properties c a Control ử ụ S d ng Methods c a Control ử ụ T o Menus ạ Cung c p Help cho ng ườ ử ụ Th c hi n ch c năng Kéo – Th ả
ấ ệ
ứ
ự
Ch6 - S d ng Winform
20
ử ụ
Các control m iớ
CheckedListBox LinkLabel Spliter ToolTip NotifyIcon
Ch6 - S d ng Winform
21
ử ụ
S d ng Properties c a Control
ử ụ
ủ
Đ t v trí Control
Thu c tính Text
ặ ị Anchor Location ộ
Ch6 - S d ng Winform
22
ử ụ
Button1.Text = "Click Me"
S d ng Methods c a Control
ử ụ
ủ
BringToFront và SendToBack
Focus
Button1.BringToFront( ) Button2.SendToBack( )
Ch6 - S d ng Winform
23
ử ụ
TextBox1.Focus( ) TextBox1.SelectAll( )
T o Menus
ạ
S d ng Menu Designer
Các l p Menu ớ T o Menu lúc thi ử ụ
T o Menu lúc ch y ạ
ạ t k ế ế
Dim mnuMain As New MainMenu( ) Dim mnuItem1 As New MenuItem, mnuItem2 As New MenuItem( ) mnuItem1.Text = "File" mnuMain.MenuItems.Add(mnuItem1) mnuItem2.Text = "Exit" mnuMain.MenuItems(0).MenuItems.Add(mnuItem2) AddHandler mnuItem2.Click, AddressOf NewExitHandler Menu = mnuMain
Ch6 - S d ng Winform
24
ử ụ
ạ
Cung c p Help cho ng
i s d ng
ấ
ườ ử ụ
Icon l
ế ế
Control ErrorProvider i s xu t hi n control k ti p, và ệ ở ấ ỗ ẽ message xu t hi n gi ng nh ToolTip khi ố ấ chu t di chuy n qua Icon. ể
ư ệ
Đ c s d ng ki m tra d li u đ u vào.
ộ
ữ ệ ể ầ
G n các file tr giúp d ng *.chm, *.hlp,
ượ ử ụ Control HelpProvider
ạ ợ
ắ *.html
ấ ợ
25
ử ụ
thu c tính
Control cung c p thông tin tr giúp qua HelpString ho c ặ HelpTopic Ch6 - S d ng Winform
ộ
Demo: S d ng Controls
ử ụ
Bin s h c cách b trí các thu c tính
ộ
ẽ ọ
ố c a control Button. ủ Th c thi các s ki n cho control. ự ệ Cu i cùng, cung c p các tr giúp ợ ấ i s d ng qua control
ự ố ườ ử ụ
ng HelpProvider và ToolTip và cách l p ậ trình t o context menu.
ạ
Ch6 - S d ng Winform
26
ử ụ
ự ử
ầ
Th c thi ch c năng Kéo – Th ả ứ S lý đ u tiên Dùng ph
ứ DoDragDrop trong s ki n
ự ệ
ươ
Thi Thi
AllowDrop thành True Effect c a ủ DragEventsArg
ự ệ DragOver c a control th . ả
ủ
ng th c
ứ Data.GetData đ truy c p
ể
ậ
ng th c MouseDown c a control kéo. ủ Thay đ i Icon kéo ổ t l p thu c tính ế ậ ộ t l p thu c tính ộ ế ậ trong s ki n Th d li u ả ữ ệ Dùng ph ươ Data
Ch6 - S d ng Winform
27
ử ụ
ự
ứ
Demo: Th c thi ch c năng Kéo – Thả
Th c thi ch c năng kéo th qua m t ví
ả
ộ
ứ d đ n gi n.
ự ụ ơ
ả
Ch6 - S d ng Winform
28
ử ụ
8. Th a k c a Windows Forms
ế ủ
ừ
m t Form
ừ
ạ ạ ạ
ế ừ ộ ơ ở ượ
c th a k ừ
ế
T i sao th a k t T o m t Form c s (Form Base) ộ T o m t Form đ ộ Thay đ i Form Base ổ
Ch6 - S d ng Winform
29
ử ụ
T i sao th a k t
m t Form
ế ừ ộ
ừ
ạ
ậ
ộ th dùng th a k
ộ ể
Các ng d ng s có m t giao di n và
ứ
ệ
ộ
M t Form là m t class, vì v y nó có ế ừ ẽ ụ cách c s chu n. ẩ ư ử form c s s tác đ ng
ơ ở ẽ
ổ ở
ộ
Các thay đ i i các form.
t
ớ
Các ví d :ụ
Các form Wizard Các form Logon
Ch6 - S d ng Winform
30
ử ụ
ạ
ộ ế
ậ ộ
ẩ ng ườ ư
T o m t Form c s (Form Base) ơ ở ạ Lên k ho ch Form Base m t cách c n th n T o form Base nh form thông th ạ Thi
ỉ
t l p các thu c tính truy c p cho các ậ ộ
ậ c truy c p trong các ỉ ượ
ậ
ế ừ
form k th a Public – Control đ
c truy câp trong b t kỳ
ượ
ấ
module.
ế ậ control Private – Control ch truy c p trong form Base Protected – control ch đ
khóa Overridable t i các Method ừ ớ
Thêm t ộ
Build Solution cho form Base Ch6 - S d ng Winform
31
ử ụ
m t cách thích h p ợ
T o form đ
ạ
ượ
c th a k ừ
ế
Đ m b o form base đã đ
c hoàn
ả
ượ
ả thành
ạ
t ế
Tham chi u t ế ớ T o form m i đ ớ ượ Thay đ i thu c tính khi c n thi ộ Vi
t ch ng các Method ho c Event khi
i Assembly c th a k ế ừ ầ ặ
ổ ồ
ế
có yêu c uầ
Ch6 - S d ng Winform
32
ử ụ
Thay đ i Form Base
ổ
Thay đ i Form Base
ổ
Các thay đ i s tác đ ng t
ộ ớ i các form k ế
ừ
ổ ẽ th a khi Rebuilt Ki m tra các form đ ể
c k th a ế ừ c khi rebuilt l
ượ Ki m tra các thay đ i tr ổ ướ
i ạ
ứ
Ch6 - S d ng Winform
33
ử ụ
i sau khi rebuilt l i ng d ng ể ng d ng ụ Ki m tra l ể ạ ạ ứ ụ
9. Demo: S d ng th a k ế ử ụ
ừ
Windows Forms
T o m t l p Base ph c v cho m c
ụ
ụ
ụ
ạ
ộ ớ đích th a kừ
ế
Vi
t ch ng các Propety, Method c a
ế
ủ
ồ
các control form base
Thay đ i form base sau khi nó đã
đ
ổ c th a k . ế ừ
ượ
Ch6 - S d ng Winform
34
ử ụ
T ng k t ế
ổ
ợ
Các l L p ớ ContainerControl là l p c s cho các
Vi
ơ ở
ậ ớ ườ ng d n file ẫ
i s d ng ườ ử ụ
ấ ợ
ộ
ử ụ
ạ i ích Windows Forms? ớ control khác đúng hay sai? t code đ truy c p t i đ ể ế ch y ng d ng ạ ứ ụ t code đ g i btnOK khi ng Vi ể ọ ế n phím Enter. ấ Li t kê các control cung c p tr giúp cho ệ i s d ng ng ườ ử ụ t code đ t o m t menu Vi ể ạ ế menu con About lúc ch y ch Ch6 - S d ng Winform Help v i m t ộ ớ ng trình ươ 35