Transcript 2013PV

Programare vizuală
1
3.
Concepte de bază ale programării vizuale
Mediul de dezvoltare Visual C#- interfata
Proprietati si evenimente
4.
Formulare
1.
2.
2
Spunem că o aplicaţie este vizuală dacă dispune de o interfaţă
grafică sugestivă şi pune la dispoziţia utilizatorului instrumente
specifice de utilizare (drag, click, etc.)
Principiile proiectării interfeţelor.
Simplitatea
Poziţia controalelor
Consistenţa
Estetica
Programarea orientata pe evenimente
3
Mediul de dezvoltare Microsoft Visual C# dispune de instrumente
specializate de proiectare, ceea ce permite crearea aplicaţiilor în mod
interactiv, rapid şi uşor.
Creare: FileNew Project; template Windows Forms Application.
4
Formularul – Form1.cs (accesibil din Solution Explorer ->Form.cs>View Designer
Toolbox – Caseta cu unelte (accesibil din View ->Other Windows>Toolbox)
5
Moduri de lucru cu controalele
modul Designer (Shift+F7) pentru a plasa noi obiecte, a le stabili
proprietăţile etc (fereastra Properties)
Modul Code (F7) – pentru scrierea codului asociat
-
-
Proprietati
Evenimente
6
TabStop
Descrierea proprietăţii
se referă la posibilitatea de a ancora controlul faţă de o margine (sau toate)
permite stabilirea culorii de fundal a controlului
permite stabilirea distanţei dintre marginea de sus a ferestrei şi control
ataşează controlul la una dintre marginile ferestrei
permite controlului să recepţioneze evenimente de la utilizator
permite stabilirea culorii textului
permite definirea înălţimii controlului
permite stabilirea distanţei dintre marginea din stânga a ferestrei şi marginea stânga a
controlului
permite denumirea controlului pentru a-l putea mai uşor vizualiza şi manipula în codul
sursă
părintele controlului
permite stabilirea distanţei dintre marginea din dreapta a ferestrei şi marginea din dreapta
a controlului
prin numărul de ordine care i se ataşează se stabileşte ordinea activării controlului la
apăsarea tastei TAB
permite sau nu ca respectivul control să fie activat prin apăsarea tastei TAB
Tag
se referă la un şir de caractere pe care controlul îl poate stoca în interiorul său
Top
Visible
permite stabilirea distanţei dintre marginea de sus a ferestrei şi marginea de sus a
controlului
stabileşte dacă respectivul control, care există în fereastră, este (TRUE) sau nu vizibil
Width
stabileşte lăţimea controlului
Proprietatea
Anchor
BackColor
Bottom
Dock
Enabled
ForeColor
Height
Left
Name
Parent
Right
TabIndex
7
Evenimentul
Click
DoubleClick
DragDrop
DragEnter
Descrierea evenimentului
se generează când se dă clic asupra unui control
se generează când se dă dublu clic asupra unui control. Excepţie făcând Button asupra căruia
nu se va putea face dublu clic, deoarece controlul acţionează la primul clic
se genereazăla finalizarea lui drag and drop
se generează atunci când obiectul, printr-un drag and drop, ajunge în interiorul controlului
DragLeave
se generează atunci când obiectul, printr-un drag and drop, ajunge să părăsească controlului
DragOver
se generează atunci când obiectul, printr-un drag and drop, ajunge deasupra controlului
KeyDown
GotFocus
se generează atunci când o tastă este apăsată în timp ce controlul este activ. Se va furniza
codul ASCII al tastei apăsate. Se generează înainte de evenimentele KeyPress şi KeyUp
se generează atunci când o tastă este apăsată în timp ce controlul este activ. Se va furniza
codul de scanare al tastei apăsate. Se generează după KeyDown şi înainte de KeyUp
se generează când o tastă este eliberată în timp ce controlul este activ. Se generează după
KeyDown şi KeyPress
se generează când controlul devine activ (se mai spune: când controlul primeşte input focusul)
LostFocus
se generează când controlul devine inactiv (se mai spune: când controlul pierde input focusul)
MouseDown
se generează când cursorul mouse-ului este deasupra controlului şi se apasă un buton al
mouse-ului
se generează când trecem cu mouse-ul deasupra controlului
se geerează când mouse-ul este deasupra controlului şi eliberăm un buton al mouse-ului
KeyPress
KeyUp
MouseMove
MouseUp
Paint
Validated
Validating
se generează la desenarea controlului
se generează când un control este pe cale să devină activ. Se generează după terminarea
evenimentului Validating, indicând faptul că validarea controlului este completă
se generează când un control este pe cale să devină activ
8
Moduri de lucru
1. Design time
in fereastra de proprietati
2. Runtime
scriere de cod
Exemplu:
this.BackColor = Color.Red;
Nume pentru controale:
sugestieTipControl
9
Proprietati uzuale
BackColor (tip Color.NumeCuloare)
BackgroundImage
Size
Text (string)
Evenimente uzuale
Click
Load
Exercitii!
Tratati evenimentul click:
- Afisati un mesaj sugestiv!
- Schimbati culoarea de fond a formularului: daca este galben in verde, iar
daca este verde, in galben.
10
Proprietati uzuale
Image
SizeMode
Width
Height
Evenimente uzuale
Click
Exercitii!
Tratati evenimentul click:
- Schimbati dimensiunile imaginii – mica/mare.
11
1. Label
Proprietati uzuale
Text (string)
Font (tip font)
ForeColor (tip Color.NumeCuloare)
Visible (bool)
Evenimente uzuale
Click
2. LinkLabel
Proprietati uzuale
Text (string)
LinkArea: Start (int – pozitia de inceput a adresei in text)
LinkVisited (bool)
Evenimente uzuale
LinkClicked
Deschidere link: System.Diagnostics.Process.Start(“adresa web”);
Deschidere link: System.Diagnostics.Process.Start(“nume executabil”);
Deschidere link: System.Diagnostics.Process.Start(“nume aplicatie”, “nume fisier deschis in aplicatie”);
12
a. Butoane de tip PushUp - Button
Proprietati uzuale
Text (string)
Font (tip font)
BackColor (tip Color.NumeCuloare)
Visible (bool)
Enabled (bool)
Left
Top
Evenimente uzuale
Click
Exercitii!
Tratati evenimentul click:
- Afisati un mesaj sugestiv!
- Schimbati culoarea de fond a formularului: daca este
galben in verde, iar daca este verde, in galben.
- Modificati aleator pozitia butonului pe formular
Indicatie:
Random r = new Random();
variabila = r.Next(0, valoareMaxima);
13
b. Butoane de selectie - RadioButton
Proprietati uzuale
Text (string)
Checked (bool)
Evenimente uzuale
Click
Observatii: butoanele se grupeaza in GroupBox.
Exercitii!
Realizati un test cu patru raspunsuri posibile, dintre care
unul singur este corect. In functie de raspuns, afiseaza
mesajul corect/ incorect.
Palariile Panama au fost create in:
a) Panama
b) Ecuador
c) Mexic
d) Egipt
14
c. Butoane de validare - CheckBox
Proprietati uzuale
Text (string)
Checked (bool)
Evenimente uzuale
Click
Exercitii!
Realizati un test cu patru raspunsuri posibile, dintre care
mai multe pot fi corecte:
Afirmatii adevarate despre Razboiul de 100 de ani sunt:
a) A durat 100 de ani
b) A fost purtat intre Franta si Anglia
c) Ioana d’Arc a fost eroina in acest razboi
d) A inceput in 1337
15
Proprietati uzuale
Text (string)
PasswordChar (string)
Multiline (bool)
pentru RichTextBox
SelectionFont
SelectionColor
SelectionBullet (bool)
Metode
Evenimente uzuale
Click
GotFocus
Leave
TextChanged
Exercitii
Formular de introducere a numelui si
prenumelui + mesaj de salut
particularizat
Copy()
Paste()
Minieditor de texte
Cut()
Indicatie: ToolStrip
Clear()
Select()
Undo():
pentru RichTextBox
LoadFile(nume fisier rtf)
SaveFile(nume fisier, RichTextBoxStreamType.RichText)
16
Proprietati uzuale
Items
Text – textul selectat
Evenimente uzuale
Click
GotFocus
Leave
TextChanged
Metode (pt Items)
Insert(pozitie,“text”)
Add(“text”)
AddRange()
Remove(“text”)
RemoveAt(pozitie)
17
Proprietati uzuale
Text (string)
ContextMenu
Evenimente uzuale
Click
Exercitii!
Realizati un editor de texte cu meniul urmator
Fisier
Nou
Editare
Copiere
Decupare
Lipeste
18
Proprietati uzuale formulare
Modal
DialogResult
Metode uzuale
Activate()
Close()
Show()
ShowDialog()
Evenimente uzuale
Closing
Load
19
Exemplu: Crearea unui formular nou
- Se adauga un formular nou: SolutionExplorer -> Nume Aplicatie -> Add ->
Windows Form (cu numele FormDoi, de exemplu)
a) Pentru afisare nemodala:
- In formularul apelant se introduce codul de apel:
FormDoi f = new FormDoi();
f.Show();
b) Pentru afisare modala:
- In formularul apelat
private string raspuns;
public string Item
{
get {return raspuns;}
}
… variabila raspuns primeste valoare pe baza datelor din formularul apelat
- In formularul apelant
FormDoi f = new FormDoi();
f.ShowDialog();
if(f.Item!=“”) //raspunsul primit din fisierul apelat
… se prelucreaza raspunsul
20
1. MessageBox
MessageBox.Show(“text mesaj”, “titlu fereastra”, tipButon, tipIcon);
tipButon: MessageBoxButtons.RetryCancel
MessageBoxButtons.AbortRetryIgnore
……
tipIcon: MessageBoxIcon.Exclamation
MessageBoxIcon.Error
…..
Exercitiu
Apel mesaj cu butoane de tip Yes, No si Cancel si icon de tip intrebare. Mesaj – Va
place cursul? Titlul – Chestionar.
21
2. OpenFileDialog, SaveFileDialog, FontDialog, ColorDialog etc.
Proprietati uzuale
Title
Filter (de exemplu=“Fisiere Rich Text (*.rtf) | *.rtf”)
Afisare:
if(formularPredefinit.ShowDialog() == System.Windows.Forms.DialogResult.tipRaspuns)
{
cod care utilizaeaza datele din fereastra (formularPredefinit.File sau .Font etc)
}
Obs tip raspuns: OK, No etc
22
Scrieti aplicatia cu numele PV1 prin care se modifica titlul formularului la realizarea unui
click pe suprafata sa.
23
Creati fisierul numere.txt, in folderul dumneavoastra.
Scrieti aplicatia cu numele PV2 care sa contina pe un formular
- o eticheta cu textul Accesati ce va intereseaza!
- Un link care sa permita accesul la www.ratb.ro
- Un link care sa permita deschiderea fisierului mspaint.exe
- Un link care sa permita deschiderea fisierului numere.txt in aplicatia notepad.exe
24
Realizati un formular de introducere a optiunilor privind o
excursie la Barcelona!
25
Realizati un formular de introducere a datelor pentru realizarea
unor operatii aritmetice!
Facultativ – minieditor de texte (RichTextFormat)
26
Realizati un formular de introducere a datelor pentru excursia
din anul acesta
27