Metodele ShowDialog() şi Clear(). Evenimentul … butonului mare (verde/portocaliu) se schimbă...

8
1 Metodele ShowDialog() şi Clear(). Evenimentul MouseEnter. Exemplu: Casete de dialog Evenimentul MouseEnter al unui control vă permite ca la o simplă plimbare pe buton fără a executa clic pe el, să se execute codul sursă al metodei. Metoda ShowDialog se aplica unei forma care va fi afisata ca forma modala, adica celelate forme nu pot fi inchise pana cand nu se inchide forma afisata cu ShowDialog(). Creati un proiect Windows Forms cu numele CasetaDIalog Pentru forma care se deschide setati urmatoarele proprietati: o (Name): mainForm o Font: Microsoft Sans Serif 8 Bold o FormBorderStyle: FixedDialog o MaximizeBox: False o MinimizeBox: False o Size: 270, 180 o Text: Dialog Adaugati pe forma un control Button si setati-i urmatoarele proprietati: o (Name): myButton o AutoSize: True o Location: 71, 53 o Text: Sa avem un dialog Alegeti din bara de meniuri ProjectAdd Windows Form pentru a adauga proiectului o noua forma, si in fereastra de dialog care se deschide introduceti pentru forma numele Dialog Pentru forma Dialog care se deschide setati urmatoarele proprietati: o Font: Microsoft Sans Serif 8 Bold o FormBorderStyle: FixedDialog o Size: 315, 180 o StartPosition: CenterSceen o Text: Caseta de Dialog Adaugati pe forma Dialog un control Label si setati-i urmatoarele proprietati: o (Name): myLabel o Location: 30, 20 o Text: Introdu un text Adaugati pe forma un control TextBox si setati-i urmatoarele proprietati: o (Name): myTextBox o Location: 30, 47 o Size: 235, 20 Adaugati pe forma doua controale Button si setati, in ordine, urmatoarele proprietati: o (Name): okButton, cancelButton o DialogResult: Ok, Cancel o Location: 30, 91; 180, 90 o Text: OK, Cancel Faceti clic pe forma Dialog si setati urmatoarele proprietati: o AcceptButton: okButton o CancelButton: cancelButton Reveniti la forma mainForm (prima forma), faceti clic pe butonul „Sa avem un dialog”, in fereastra Properties faceti clic pe fulgerul galben din bara de titlu a ferestrei pentru a deschide lista evenimentelor asociate acestui control, selectati din lista evenimentul MouseEnter si faceti dublu-clic pe ele pentru a deschide administratorul asociat. In fereastra de cod care se deschide introduceti codul scris in rosu: private void myButton_MouseEnter(object sender, EventArgs e) { Dialog myForm = new Dialog();

Transcript of Metodele ShowDialog() şi Clear(). Evenimentul … butonului mare (verde/portocaliu) se schimbă...

Page 1: Metodele ShowDialog() şi Clear(). Evenimentul … butonului mare (verde/portocaliu) se schimbă atunci când mouse-ul este poziţionat pe buton. După adăugarea butoanelor şi a

1

Metodele ShowDialog() şi Clear(). Evenimentul MouseEnter. Exemplu: Casete de dialog Evenimentul MouseEnter al unui control vă permite ca la o simplă plimbare pe buton fără a executa clic pe el, să se execute codul sursă al metodei. Metoda ShowDialog se aplica unei forma care va fi afisata ca forma modala, adica celelate forme nu pot fi inchise pana cand nu se inchide forma afisata cu ShowDialog().

Creati un proiect Windows Forms cu numele CasetaDIalog Pentru forma care se deschide setati urmatoarele proprietati:

o (Name): mainForm o Font: Microsoft Sans Serif 8 Bold o FormBorderStyle: FixedDialog o MaximizeBox: False o MinimizeBox: False o Size: 270, 180 o Text: Dialog

Adaugati pe forma un control Button si setati-i urmatoarele proprietati: o (Name): myButton o AutoSize: True o Location: 71, 53 o Text: Sa avem un dialog

Alegeti din bara de meniuri ProjectAdd Windows Form pentru a adauga proiectului o noua forma, si in fereastra de dialog care se deschide introduceti pentru forma numele Dialog

Pentru forma Dialog care se deschide setati urmatoarele proprietati: o Font: Microsoft Sans Serif 8 Bold o FormBorderStyle: FixedDialog o Size: 315, 180 o StartPosition: CenterSceen o Text: Caseta de Dialog

Adaugati pe forma Dialog un control Label si setati-i urmatoarele proprietati: o (Name): myLabel o Location: 30, 20 o Text: Introdu un text

Adaugati pe forma un control TextBox si setati-i urmatoarele proprietati: o (Name): myTextBox o Location: 30, 47 o Size: 235, 20

Adaugati pe forma doua controale Button si setati, in ordine, urmatoarele proprietati: o (Name): okButton, cancelButton o DialogResult: Ok, Cancel o Location: 30, 91; 180, 90 o Text: OK, Cancel

Faceti clic pe forma Dialog si setati urmatoarele proprietati: o AcceptButton: okButton o CancelButton: cancelButton

Reveniti la forma mainForm (prima forma), faceti clic pe butonul „Sa avem un dialog”, in fereastra Properties faceti clic pe fulgerul galben din bara de titlu a ferestrei pentru a deschide lista evenimentelor asociate acestui control, selectati din lista evenimentul MouseEnter si faceti dublu-clic pe ele pentru a deschide administratorul asociat. In fereastra de cod care se deschide introduceti codul scris in rosu:

private void myButton_MouseEnter(object sender, EventArgs e) { Dialog myForm = new Dialog();

Page 2: Metodele ShowDialog() şi Clear(). Evenimentul … butonului mare (verde/portocaliu) se schimbă atunci când mouse-ul este poziţionat pe buton. După adăugarea butoanelor şi a

2

myForm.ShowDialog(); }

Cand plimbati mouse-ul peste buton se va deschide forma Dialog ca forma modala. Reveniti la forma Dialog si faceti dublu-clic pe butonul OK pentru a deschide administratorul

asociat si introduceti codul scris in rosu: private void okButton_Click(object sender, EventArgs e) { this.Close(); //apasarea acestui buton inchide forma Dialog }

Reveniti la forma Dialog si faceti dublu-clic pe butonul Cancel pentru a deschide administratorul asociat si introduceti codul scris in rosu:

private void cancelButton_Click(object sender, EventArgs e) { Dialog myForm = new Dialog(); //creeaza din nou forma myForm.ShowDialog(); // afiseaza din nou forma if (this.DialogResult != DialogResult.OK) { this.myTextBox.Clear(); //sterge textul introdus in caseta de text } }

Rulati aplicatia si verificati functionalitatea ei.

Metoda Start(). Evenimentele MouseLeave, MouseEnter si MouseHover. Evenimentele MouseHover, MouseEnter si MouseLeave va permite executarea codului sursă al metodei în momentul în care veţi plimba mouse-ul pe deasupra controlului şi nu la executarea clic-ului. Exemplu: Schimbă culoarea În acest exemplu este prezentată modalitatea de schimbare aleatoare a culorii unei etichete.

Creati un proiect Windows Forms cu numele SchimbaCuloarea Pentru forma care se deschide setati urmatoarele proprietati:

o (Name): mainForm o BackColor: LightSteelBlue (tabul Web)

Page 3: Metodele ShowDialog() şi Clear(). Evenimentul … butonului mare (verde/portocaliu) se schimbă atunci când mouse-ul este poziţionat pe buton. După adăugarea butoanelor şi a

3

o Font: Microsoft Sans Serif 8 Blod o ForeColor: Navy (tabul Web) o FormBorderStyle: FixedDialog o MaximizeBox: False o MinimizeBox: False o Size: 270, 180 o Text: Schimbarea Culorii

Adaugati pe forma un control Label si setati-i urmatoarele proprietati: o (Name): myLabel o Font: Microsoft Sans Serif 10 Bold o Location: 70, 25 o Text: Schimba culoarea

Adaugati pe forma doua controale Button si setati, in ordine, urmatoarele proprietati: o (Name): startButton, stopButton o Location: 19, 77; 170, 77 o Text: START, STOP

Adaugati pe forma un control Timer si setati-i urmatoarele proprietati: o (Name): myTimer o Interval: 150 (ms)

Faceti dublu-clic pe butonul START selectati in fereastra Properties tabul Events (fulgerul galben), si faceti dublu-clic pe evenimentul MouseHover. In administratorul de evenimente care se deschide introduceti codul scris in rosu:

private void startButton_MouseHover(object sender, EventArgs e) { myTimer.Start(); //porneste timerul }

Selectati butonul STOP , selectati in fereastra Properties tabul Events (fulgerul galben), si faceti dublu-clic pe evenimentul MouseHover. In administratorul de evenimente care se deschide introduceti codul scris in rosu:

private void stopButton_MouseHover(object sender, EventArgs e) { myTimer.Stop(); //opreste timerul }

Deasupra metodei startButton_MouseHover introduceti declaratia: Random r = new Random(200); //porneste generatorul de numere aleatoare

Faceti dublu-clic pe timer si introduceti codul in rosu: private void myTimer_Tick(object sender, EventArgs e) { myLabel.BackColor = Color.FromArgb(r.Next(255), r.Next(255), r.Next(255)); }

Page 4: Metodele ShowDialog() şi Clear(). Evenimentul … butonului mare (verde/portocaliu) se schimbă atunci când mouse-ul este poziţionat pe buton. După adăugarea butoanelor şi a

4

La fiecare 150 ms (intervalul de bataie stabilit pentru timer), culoarea fundalului etichetei este schimbata. Noua culoare este data de cele trei valori RGB (proprietatea FromArgb a obiectului Color) generate in mod aleator cu ajutorul metodei Next care va furniza un numar aleator cuprins intre 0 si 255.

Exemplu: Trei culori Acest exemplu afişează un grup alcătuit din 3 butoane, etichetate A,B respectiv C având iniţial culoarea roşie. Apăsarea unui buton determină schimbarea culorii acestuia în galben. La o nouă apăsare butonul revine la culoare iniţială. Acţionarea butonului „Starea butoanelor” determină afişarea într-o casetă text a etichetelor butoanelor galbene. Caseta text devine vizibilă atunci când apăsăm prima oară acest buton. Culoarea butonului mare (verde/portocaliu) se schimbă atunci când mouse-ul este poziţionat pe buton. După adăugarea butoanelor şi a casetei text pe formular, stabilim evenimentele care determină schimbarea culoriilor şi completarea casetei text.

Creati un proiect Windows Forms cu numele ButoaneColorate Pentru forma care se deschide setati urmatoarele proprietati:

o (Name): mainForm o Font: Microsoft Sans Serif 8 Bold o FormBorderStyle: FixedDialog o MaximizeBox: False o MinimizeBox: False o Size: 450, 250 o Text: Butoane Colorate

Adaugati pe forma un control Label si setati-i urmatoarele proprietati: o (Name): infoLabel o Location: 143, 27 o Text: Afiseaza starea butoanelor

Adaugati pe forma trei controale Button si setati-le, in ordine, urmatoarele proprietati: o (Name): firstButton, secondButton, thirdButton o BackColor: IndianRed (tabul Web) o FlatStyle: Popup o Location: 14, 87; 78, 87; 139, 87 o Text: A, B, C

Adaugati pe forma un control TextBox si setati-i proprietatile:

Page 5: Metodele ShowDialog() şi Clear(). Evenimentul … butonului mare (verde/portocaliu) se schimbă atunci când mouse-ul este poziţionat pe buton. După adăugarea butoanelor şi a

5

o (Name): showTextBox o Location: 230, 87 o Size: 55, 20 o Visible: False

Adaugati pe forma un control Button si setati-i proprietatile: o (Name): showButton o BackColor: DarkOrange (tabul Web) o FlatStyle: Popup o Location: 240, 130 o Size: 175, 55 o Text: Starea butoanelor

Faceti dublu-clic pe butonul A si in administratorul care se deschide scrieti codul in rosu: private void firstButton_Click(object sender, EventArgs e) { //la fiecare clic culoarea butonului se schimba din IndianRed in Yellow //si invers if(firstButton.BackColor==Color.IndianRed) firstButton.BackColor=Color.Yellow; else firstButton.BackColor=Color.IndianRed; }

Faceti dublu-clic pe butonul B si in administratorul care se deschide scrieti codul in rosu: private void secondButton_Click(object sender, EventArgs e) { if (secondButton.BackColor == Color.IndianRed) secondButton.BackColor = Color.Yellow; else secondButton.BackColor = Color.IndianRed; }

Faceti dublu-clic pe butonul C si in administratorul care se deschide scrieti codul in rosu: private void thirdButton_Click(object sender, EventArgs e) { if (thirdButton.BackColor == Color.IndianRed) thirdButton.BackColor = Color.Yellow; else thirdButton.BackColor = Color.IndianRed; }

Selectati butonul mare portocaliu, in fereastra Properties selectati tabul Events (fulgerul galben), selectati din lista de evenimente asociate unui control Button evenimentul MouseEnter si faceti dublu-clic pe el. In administratorul care se deschide scrieti codul in rosu:

private void showButton_MouseEnter(object sender, EventArgs e) { //cand mouse-ul ajunge pe buton acesta isi schimba culoarea in verde

//si are alt text afisat pe el showButton.BackColor = Color.GreenYellow; showButton.Text = "Butoane apasate"; }

Selectati butonul mare portocaliu, in fereastra Properties selectati tabul Events (fulgerul galben), selectati din lista de evenimente asociate unui control Button evenimentul MouseLeave si faceti dublu-clic pe el. In administratorul care se deschide scrieti codul in rosu:

Page 6: Metodele ShowDialog() şi Clear(). Evenimentul … butonului mare (verde/portocaliu) se schimbă atunci când mouse-ul este poziţionat pe buton. După adăugarea butoanelor şi a

6

private void showButton_MouseLeave(object sender, EventArgs e) { //cand mouse-ul paraseste suprafata butonului acesta redevine portocaliu //si isi schima textul. Caseta de text devine invizibila showTextBox.Visible = false; showButton.BackColor = Color.DarkOrange; showButton.Text = "Starea butoanelor"; }

Faceti dublu-clic pe butonul portocaliu si administratorul de evenimente implicit care se deschide scrieti codul in rosu:

private void showButton_Click(object sender, EventArgs e) { //caseta de text devine vizibila showTextBox.Visible = true; showTextBox.Text = ""; //se afiseaza in caseta numele butoanelor care au fost apasate\ //adica cele care au culoarea galbena if (firstButton.BackColor == Color.Yellow) showTextBox.Text += "A "; if (secondButton.BackColor == Color.Yellow) showTextBox.Text += "B "; if (thirdButton.BackColor == Color.Yellow) showTextBox.Text += "C "; }

Exemplu: Hyperlink LinkLabel afişează un text cu posibilitatea ca anumite părţi ale textului (LinkArea) să fie desenate ca şi hyperlink-uri. Pentru a face link-ul funcţional trebuie tratat evenimentul LinkClicked. În acest exemplu, prima etichetă permite afişarea conţinutului discului C:, a doua legătură este un link către pagina www.microsoft.com/romania şi a treia accesează aplicatia Notepad.

Creati un proiect Windows Forms cu numele UtilizareLinkuri Pentru forma care se deschide setati urmatoarele proprietati:

o (Name): mainForm o ControlBox: False (nu se va afisa butonul de inchidere x ) o Font: Arial 10 Bold o FormBorderStyle: FixedDialog o MaximizeBox: False o MinimizeBox: False o Size: 400, 200

Page 7: Metodele ShowDialog() şi Clear(). Evenimentul … butonului mare (verde/portocaliu) se schimbă atunci când mouse-ul este poziţionat pe buton. După adăugarea butoanelor şi a

7

o Text: Utilizare hiperlinkuri Adaugati pe forma trei controale LinkLabel si setati, in ordine, urmatoarele proprietati:

o (Name): discLinkLabel, browserLinkLabel, notepadLinkLabel o BackColor: PapayaWhip (tabul Web) o LinkColor: RoyalBlue (tabul Web) (culoarea de afisare a link-ului) o Location: 40, 30; 40, 70; 40, 110 o Text:

Explorati discul C:\ Navigati la pagina www.microsoft.com/romania Deschideti aplicatia Notepad

o VisitedLinkColor: Fuchsia (tabul Web) (culoarea link-ului care a fost vizitat) Vom stabili pentru fiecare link zona care se va comporta ca un hiperlink. Selectati primul link si, in

fereastra Properties, faceti clic pe LinkArea, apoi pe caseta cu trei puncte din dreapta proprietatii. Se va deschide editorul link-ului ca in imaginea de mai jos:

Selectati textul C:\ si apasati Ok. Procedati la fel cu al doilea link si selectati textul

www.microsoft.com/romania, iar la al treilea link selectati textul Notepad Adaugati pe forma un control Button si setati urmatoarele proprietati:

o (Name): exitButton (apasarea butonului va inchide aplicatia) o Location: 305, 130 o Text: Exit

Faceti dublu-clic pe primul link si in administratorul de evenimente implicit care se deschide scrieti codul in rosu:

private void discLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { //porneste procesul de explorare a discului C System.Diagnostics.Process.Start(@"C:\"); //link-ul este setat ca fiind vizitat pentru a-si schimba culoarea discLinkLabel.LinkVisited = true; }

Procedati la fel pentru al doilea link si scrieti codul in rosu: private void browserLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { //porneste aplicatia Firefox pentru a naviga la adresa indicata System.Diagnostics.Process.Start("Firefox",

Page 8: Metodele ShowDialog() şi Clear(). Evenimentul … butonului mare (verde/portocaliu) se schimbă atunci când mouse-ul este poziţionat pe buton. După adăugarea butoanelor şi a

8

"http://www.microsoft.com/romania"); browserLinkLabel.LinkVisited = true; }

Observatie: Daca doriti sa utilizati Internet Explorer folositi stringul „IExplore”, iar pentru chrome stringul „Chrome”.

Procedati la fel pentru al treilea link si scrieti codul in rosu: private void notepadLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { //porneste aplicatia Notepad System.Diagnostics.Process.Start("notepad"); notepadLinkLabel.LinkVisited = true; }

Faceti dublu-clic pe butonul Exit si scrieti in administrator codul in rosu: private void exitButton_Click(object sender, EventArgs e) { Application.Exit(); //inchide aplicatia }