Logo of Vovisoft

 

Các mẹo vặt trong VB

Gõ vào đầu đề phía bên trái để nhìn thấy các phần chọn. Muốn khép các phần chọn hãy gõ đầu đề thêm một lần hoặc gõ vào đầu đề khác.

VB Tips & Tricks

Forms
Hiện form khác
Form hiện một cùng chỗ
Event dùng update form
Cấm load form bằng ô X
Làm sao biết form đã load
Form giống form có sẵn

Controls
Ngày Giờ
Files
Linh Tinh

Làm hiện ra một Form khác

Giả tỉ bạn đang ở trong Form1 và muốn làm cho Form2 hiện ra, dùng:

Form2.Show

Khi muốn dấu Form2, dùng:

Form2.Hide

Khi một Form được 'Show' lần đầu tiên, nó đự ợc 'Load' (cho thành hình) và 'Show' ngay sau đó. Khi một Form đã có rồi, tức là đã được 'Load' rồi, lúc bạn 'Hide'  nó cűng giống như kéo một tấm màn che nó lại. Kế đó, khi bạn 'Show' nó cűng giống như mở màn ra, không có gì ảnh hưởng Form.

Bạn có thể cho Form biến mất bằng cách 'Unload' nó, như:

Unload Form2

Lần tới khi bạn 'Show' nó, Form sẽ được 'Load' trở lại. Mỗi khi Form được 'Load', nó 'execute' sub Form_Load. Form_Load là nơi bạn viết các 'statements' để 'initialise' Form, tức là những gì cần phải được sắp xếp cho sẵn sàng trước khi Form thành hình.

Do đó bạn phải quyết định khi nào dùng Unload hay Hide đê? Làm cho Form biến mất. Nhớ rằng mỗi khi Form được 'Load' thì nó 'initialise' và mất một ít thì giờ. 

Nếu bạn muốn làm cho một Form hiện ra và khiến nó dành nhận tất cả 'keystrokes' và 'mouse clicks' thì dùng:

Form2.Show vbModal

Ngay sau khi Form2 được 'Show' dưới dạng vbModal, nó dành ngay CPU process, đến đổi statement nằm ngay dưới đó trong Form1 cűng đợi cho đến khi Form2 biến mất bằng Unload hay  Hide mới chạy tiếp được.

Nếu bạn muốn Form2 hiện ra trong Modeless (không phải Modal) nhưng luôn luôn nằm trên Form1, ngay cả khi Form1 trở thành active, dùng:

Form2.Show ,Me   ' Me là Form1


Làm cho Form luôn luôn hiện ra một chỗ và cùng một cở

Trong Sub Form_Load, dùng

    Move fLeft, fTop, fWidth, fHeight

Ðể nhớ thứ tự các parameters trong Sub Move hãy nhớ tọa độ có X,Y . trong Sub Move ta nói đến vị trí X,Y ( fLeft, fTop) rồi cở X,Y (fWidth, fHeight).

Move là một method có thể được dùng cho Form hay Control và rất hiệu quả.

Nếu muốn Frame1 luôn luôn nằm ở đỉnh trái, dùng:

  Frame1.move 0,0

Nếu muốn chỗ và cở của Form 'configurable' (user có thể thay đổi) thì chứa các dừ kiện đó trong Registry rồi đọc fLeft, fTop, fWidth, fHeight từ Registry trong Sub Form_Load. ( xem Function GetSetting )

Ðể cho Form2 hiện ra bên phải và ngang hàng với Form1, trom Sub Form_Load của Form2 dùng:

   Sub Form_Load()

      Move Form1.Width, Form1.Top

  End Sub


Dùng Event nào để update Form?

Mỗi khi trở lại một Form sau khi làm việc ở một Form khác, ta muốn 'update' một số dữ kiện đang được 'display'  để phản ảnh nhừng thay đổi vừa mới xãy ra.

Ðể code trong Sub Form_Activate.


Làm sao ta biết  một Form  đã được Loaded?

Dùng Function sau đây của Microsoft:

Function FormIsLoaded(MyFormName As String) As Boolean

'  Determines if a form is loaded.

Dim i As Integer

 
FormIsLoaded =
False
 
For i = 0 To Forms.Count - 1
     
If Forms(i).FormName = MyFormName Then
        
FormIsLoaded =
True
        
Exit Function  ' Quit function once form has been found.
     
End If
 
Next i

End Function

Ði qua hết collection của Forms để xem có Form nào trùng tên.

Cách dùng:

   If FormIsLoaded("Form2") then

      MsgBox "Form2 is already loaded"

   End If


Không cho User Unload Form bằng cách click dấu X

Nhiều khi bạn muốn thu xếp mọi chuyện đàng hoàng trước khi Unload một Form nên bạn làm một Exit hay Close button cho user dùng. Ðể làm mất dấu X phía đỉnh phải,  'set' Property ControlBox của Form ra False. Nếu làm thế nầy có điểm bất lợi là khi 'minimize' Form, ta không thấy icon của Form. Có một cách vẫn để nguyên dấu X, nhưng khi user click nó thì ta check 'unloadMode' trong Sub Form_QueryUnload để biết lý do tại sao Form phải unload. Trong Sub Form_Unload có thể 'assign' Cancel ra True để 'abort' Unload.

Nếu bạn muốn không cho user minimise Form thì set Property MinButton ra False.


Làm một Form giống một Form có sẵn

Nhiều khi bạn muốn làm một Form giống giống một Form đã có sẵn trong Project. Thí dụ bạn muốn 'duplicate' Form2 để làm nên một Form3 để sau đó sữa chữa nó chút đỉnh. Bạn làm như sau:

1. Mở Form2 ra
2. Dùng Properties để đổi tên Form2 ra Form3
3. Dùng File | Save As menu command để chứa Form nầy dưới tên Form3.frm

Bây giờ bạn có thêm Form3 trong Project, trong khi Form2.frm vẫn còn đó nhưng không còn thuộc về Project nữa. Nếu bạn muốn cho nó vào Project trở lại thì dùng Project | Ad File .. menu command để chọn Form2.frm bỏ vào Project.