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.
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.
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
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
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.