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