Metode și evenimente ale formelor - bază vizuală 5

Metode și evenimente de forme

Principalele proprietăți ale formelor pe care le-am considerat în articolul "Întemeierea programului sau proprietățile de bază ale formelor", este timpul să analizăm metodele și evenimentele de bază ale formelor.

Numai după aceea începeți să scrieți codul.

Iar ignorarea principalelor puncte de lucru cu acest sau acel element de control poate duce la pierderea timpului de scriere a codului, iar rezultatul nu va fi atins. Va fi destul de ofensator dacă ați dezvoltat un algoritm pentru aplicația dvs., uitând de o metodă care, de exemplu, vă permite să faceți tot codul în două rânduri. Și se pare că toate eforturile tale au fost irosite.

Pentru a împiedica acest lucru din nou, vă sfătuiesc să vă amintiți mereu cum și cu ce puteți face această sau acea acțiune pe un control sau o variabilă.

Mai întâi, deschideți caseta de dialog Opțiuni ... din meniul Instrumente. Verificați dacă este selectată caseta de selectare Listă liste automate - afișați automat o listă cu toate proprietățile și metodele obiectului selectat.

Metode și evenimente ale formelor - bază vizuală 5

Figura 1. Caseta de dialog Opțiuni. fila Editor

De exemplu, dacă această opțiune este activată, după introducerea numelui și a punctului, va fi afișată o listă cu toate proprietățile și metodele pentru obiectul selectat. Dacă bifarea nu merită, vă sfătuiesc să o puneți, ceea ce va face mult mai ușor să scrieți codul. Este întotdeauna posibil să adăugați încă o dată o proprietate sau o metodă fără a o tasta pe tastatură.

Consiliul. Pentru a accesa formularul din codul de program, în locul numelui formularului curent, puteți utiliza operatorul Me. care ne va permite să simplificăm codul puțin și încă o dată nu-mi amintesc numele formularului.

Metode și evenimente ale formelor - bază vizuală 5

Figura 2. Meniu care conține metodele și proprietățile obiectului selectat

Puteți selecta metoda dorită fie făcând clic pe mouse sau apăsând tasta Tab de pe tastatură. Dacă utilizați tasta Enter. atunci veți merge la următoarea linie și nu setați valoarea pentru proprietatea selectată, adică va trebui să facă noi eforturi pentru a reveni la linia dorită.

Proprietățile și metodele au pictograme diferite, astfel încât acestea sunt ușor de distins.

Să luăm în considerare metodele de bază de lucru cu formularul

Cerc - vă permite să desenați o elipsă, un cerc, un arc sau un sector. Setați proprietatea formularului AutoRedraw la True.

Object.Circle [Pas] (X, Y), Radius, [Culoare], [Început], [Sfârșit], [Raport]

Me.Circle (1000, 1000), 500. vbRed

Desenează un cerc de culoare roșie cu o rază de 500.

Me.Circle (1000, 1000), 500. vbRed. 0.5

Desenează o elipsă prin strângerea cercului de-a lungul axei verticale.

Const P = 3,141593

Me.Circle (1000, 1000), 500. vbRed. P / 2. P

Programul trage un cerc împărțit în sectoare cu diferite stiluri de trapă și culori diferite de desen.


Private Sub Form_Load ()
Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer ()
Const P = 3,141593
Dim i ca intreg
Dim dblStart, dblEnd ca dublu

dblEnd = -0.001
Pentru i = 1 până la 6
FillStyle = i + 1
dblStart = dblEnd
FillColor = Int (Rnd (1) * 65535) + 16777215
ForeColor = Int (Rnd (1) * 16777215) + 65535
DrawWidth = 2
dblEnd = - (2 * P / 6) * i
Cerc (150. 100), 70. dblStart, dblEnd
următor
End Sub

Ascunde - vă permite să eliminați un formular de pe ecran, dar nu îl descărcați din memorie.

Linie - vă permite să desenați o linie sau un dreptunghi. Setați proprietatea formularului AutoRedraw la True.

Obiect. Linie [Pas] (X1, Y1) [Pas] - (X2, Y2). [Culoare], [B] [F]

În paranteze, sunt specificați parametrii necesari, în cazul celor nepermanenți.

Desenează o linie albastră.

Creează o linie cu culoarea setată în proprietatea ForeColor a formularului.

Desenează un pătrat plin cu roșu.

Mută ​​- vă permite să mutați formularul.

Me.Move [Edge stânga], [Top Edge], [Lățime], [Înălțime]

Mută ​​forma prin modificarea dimensiunii.

Me.Move 100. 7000

Mută ​​formularul, parametrii dimensiunii nu sunt specificați.

PaintPicture - vă permite să copiați o anumită zonă pe un formular sau pe PictureBox într-un alt desen. Setați proprietatea formularului AutoRedraw la True.

Me.PaintPicture [Sursa], [X1], [Y1], [width1] [Vysota1], [X2], [Y2], [lățime2] [Vysota2] [Operațiunea]

Constante ale parametrilor operatorului:

Const vbDstInvert = 5570569 (H550009)

Inversarea desenului final.

Const vbSrcAnd = 8913094 (H8800C6)

ȘI funcționare, pentru pixelii sursă și final.

Const vbSrcInvert = 6684742 (H660046)

XOR, pentru pixelii sursă și final.

Const vbSrcPaint = 15597702 (HEE0086)

OR, pentru pixelii sursă și final.

Copiază o imagine din Picture1 într-o formă, trăgând-o conform coordonatelor specificate.

Punct - returnează valoarea culorii punctului selectat. Dacă coordonatele cad în afara formularului, returnează -1.

Label1 = Me.Point (2. 2)

PopupMenu - vă permite să afișați meniul contextual.

Private Sub Form_MouseDown (buton ca intreg, Shift ca intreg, X ca single, Y ca single)
Dacă butonul = 2 și vbRightButton Apoi
"verificați dacă este apăsat butonul drept al mouse-ului
PopupMenu mnuFile
Sfârșit Dacă
End Sub

Imprimare - tipăriți textul pe formular. Setați proprietatea formularului AutoRedraw la True.

Me.Print "Felicitări!" vbCrLf "Vă doresc toate cele bune!"

PSet - Desenați un punct de culoare specificat într-un anumit loc. Proprietatea DrawWidth este responsabilă pentru grosimea obiectului.

Object.Pet [Pas] (X, Y), [Culoare]

Me.DrawWidth = 10
Me.Pet (100. 100), vbRed

Actualizare - actualizează formularul.

Scară - setarea scalei.

ScaleX - este folosit pentru a converti valoarea înălțimii formularului de la o unitate (setată în ScaleMode) la alta.

ScaleY - este folosit pentru a converti valoarea lățimii formei de la una dintre unitățile (instalată în ScaleMode) la altele.

SetFocus - transferă forma de focalizare. Un formular poate primi focalizare doar dacă nu are control asupra acestuia sau nu este vizibil sau accesibil.

Arată - Încarcă sau afișează formularul pe ecran, dacă nu este încărcat în memorie, atunci metoda vă permite să îl încărcați.

TextHeight - returnează înălțimea șirului specificat.

Label1 = Me.TextHeight ("Felicitări!" vbCrLf "Vă doresc toate cele bune!" )

TextWidth - Returnează lățimea șirului specificat.

Label1 = Etichetă1 Spațiu (1) Me.TextWidth ("Felicitări!" vbCrLf "Vă doresc toate cele bune!" )

Luați în considerare evenimentele principale ale formularului

Figura 3. Listă de obiecte

Metode și evenimente ale formelor - bază vizuală 5

Figura 4. Listă de proceduri

Pentru a urmări modul în care apar evenimentele în sistem, adică în ce ordine, luați în considerare un exemplu. În acest exemplu, când apare un eveniment pe formular, va fi plasat textul corespunzător, care vă va informa în ce ordine au loc evenimentele. Primul eveniment este evenimentul Initialize.

Private Sub Form_Activate ()
Print "Există un eveniment Activate"
End Sub

Privat Sub Form_GotFocus ()
Print "Evenimentul GotFocus apare"
End Sub

Private Sub Form_Load ()
Print "Se produce evenimentul de încărcare"
End Sub

Private Sub Form_Resize ()
Imprimare "Evenimentul de redimensionare are loc"
End Sub

Metode și evenimente ale formelor - bază vizuală 5

Figura 5. Rezultatul programului

Activare - apare atunci când formularul devine activ, adică se concentrează. Funcționează numai atunci când comutați între formularele de proiect. Apare de fiecare dată când forma este activată.

Faceți clic - apare la apăsarea mouse-ului, într-un loc gol al formularului. Atât butoanele din dreapta, cât și din stânga.

DblClick - apare făcând dublu clic pe butoanele din dreapta și din stânga. Iar evenimentul Click se mai întâmplă.

Private Sub Form_Click ()
Imprimați "1"
End Sub

Private Sub Form_DblClick ()
Imprimați "2"
End Sub

Dezactivare - un eveniment apare atunci când formularul nu mai este activ. În fața evenimentului Activare. Apare atunci când focalizarea este pierdută. Funcționează numai atunci când comutați între formularele de proiect.

DragDrop - apare când operația de tragere și fixare este finalizată. În momentul în care elementul este resetat la formular.

Private Sub Form_DragDrop (sursă ca control, X ca singură, Y ca singură)
Print "Încercarea de a muta butonul"
End Sub

Private Sub Form_Load ()
Command1.DragMode = 1
End Sub

DragOver - apare atunci când obiectul sursă este deasupra obiectului destinatar, dar butonul nu este lansat încă.

GotFocus - apare atunci când primește forma de focalizare. Apăsând tasta Tab sau folosind metoda SetFocus.

Inițializare - apare când formularul este creat și apare o singură dată. Înainte de a încărca formularul, în timpul configurării.

KeyDown - apare atunci când formularul se concentrează și utilizatorul apasă o tastă de pe tastatură.

KeyPress - apare atunci când apăsați și țineți apăsată o tastă. Momentul de retenție este foarte rapid, aproape instantaneu. Cu acest eveniment puteți obține codul unei taste apăsate.

KeyUp - apare când forma se concentrează și utilizatorul eliberează o tastă de pe tastatură.

Încărcare - încărcați formularul în memorie, înainte ca acesta să apară pe ecran. Acest eveniment are doar o formă. Formularul poate fi descărcat și reîncărcat în timpul executării cererii, ori de câte ori este necesar. Prin urmare, evenimentul poate apărea la solicitarea dezvoltatorului de mai multe ori.

Probabil, acesta este evenimentul cel mai folosit. Codul evenimentului este executat în timp ce formularul nu este încă vizibil pe ecran.

Puteți să-l utilizați pentru a personaliza comportamentul și aspectul formularului.

Centrează formularul de pe ecran.

Private Sub Form_Load ()
Me.Move (Ecran. Lățime - Lățime) / 2. (Ecran. Înălțime - Înălțime) / 2
End Sub

LostFocus - apare atunci când formularul pierde focalizarea.

MouseDown - apare atunci când butonul mouse-ului este apăsat pe formular.

MouseMove - apare când indicatorul mouse-ului se deplasează peste formular.

MouseUp - apare numai când utilizatorul, după ce a făcut clic pe formular, eliberează butonul mouse-ului.

Evenimente MouseDown. MouseMove și MouseUp au aceiași parametri:

Form_MouseDown (buton ca intreg, schimbare ca intreg, X ca single, Y ca single)
Form_MouseMove (buton ca intreg, schimbare ca intreg, X ca single, Y ca single)
Form_MouseUp (buton ca intreg, Shift ca intreg, X ca single, Y ca single)

Buton - conține numărul butonului mouse-ului.

Const vbLeftButton = 1

Const vbMiddleButton = 4

Const vbRightButton = 2

Const vbAltMask = 4

Const vbCtrlMask = 2

Const vbShiftMask = 1

X, Y - coordonatele indicatorului mouse-ului unde sa produs evenimentul.

QueryUnload - apare înainte de evenimentul Unload. înainte de închiderea formularului. Dacă setați parametrul Cancel la True atunci când procesați un eveniment, descărcarea formularului va fi anulată.

Parametrul UnloadMode conține valoarea pentru ce motiv este închis formularul.

Constatări parametru UnloadMode:

Const vbAppTaskManager = 3
- apăsând pe Ctrl + Alt + Del
Const vbAppWindows = 2
- când Windows se termină
Const vbFormCode = 1
- Evenimentul Unload este apelat în codul aplicației
Const vbFormControlMenu = 0
- dând clic pe "Închidere" din meniul ferestrei, în antetul formularului.
Const vbFormMDIForm = 4
- pentru a închide forma principală, copilul se închide.

Private Sub Form_QueryUnload (Anulare ca Integer, UnloadMode ca Integer)
Dacă UnloadMode = vbFormControlMenu Apoi
Anulați = Adevărat
Sfârșit Dacă
End Sub

Redimensionare - apare atunci când se modifică forma formei. Puteți să o utilizați pentru a scala controalele atunci când redimensionați formularul.

Private Sub Form_Resize ()
Text1.Height = Form1.ScaleHeight
Text1.Width = Form1.ScaleWidth
End Sub

Terminarea este efectuată de cel mai recent eveniment, după descărcare. Acest eveniment are doar o formă.

Descărcați - descărcați formularul și ștergeți-l din memorie. Acest eveniment are doar o formă. Cu parametrul Anulare, puteți anula ștergerea formularului.

Private Sub Form_Unload (Anulare ca Integer)
Dacă MsgBox ("Sigur vrei să renunți?" .VbYesNo, "Ieșirea din program") = vbYes Then
Descărcați-mă
Setați Form1 = Nimic
altfel
Anulați = 1
Sfârșit Dacă
End Sub

Dacă sunteți interesat, care este subiectul, scrie - voi încerca să-l dezvăluie în viitor.

Articole similare