Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Fereastra de dialog Open File

Intr-unul din articolele anterioare an descris modul de folosire al ferestrei de dialog Color Picker. Astazi voi continua descrierea ferestrelor de dialog incuse in .Net framework (3.5) prezentand Open File Dialog. Cu ajutorul acestei ferestre utilizatorul aplicatiei poate alege din filesystem-ul propriu un fisier (sau mai multe). Este, cred, acceasi (cel putin ca functionalitate si design) fereastra cu care suntem obisnuiti cand apelam dintr-o aplicatie comanda Open.
De exemplu, in Visual Studio, in momentul in care vreau sa deschid un fisier, si apelez comanda Open (File -> Open) urmatoarea fereastra apare:

Open File Dialog in Visual Studio


Insa asa cum imi place mie sa procedez, o sa renunt la a scrie prea multe descrieri si explicatii si o sa exemplific folosirea acestei componente. Pentur asta, creez un proiect nou, de tip WindowsFormsApplication. Odata creat, acest proiect are un Form gol. Deschid fereastra toolbox (Ctrl-Alt-X) si din tabul Dialogs trad in form o componenta OpenFileDialog.
Fereastra toolbox arata asa:

Fereastra Toolbox

Vom sti ca avem inclus un control de tip OpenFileDialog in form-ul curent daca in partea de jos a ferestrei de editare, in modul design, apare iconul urmator:

Open Icon

Putem stabili un set de proprietati pentru fereastra de dialog. Cel mai usor mod de a stabili/modifica aceste proprietati este din fereastra Properties (F4) inclusa in Visual Studio. Aceasta fereastra arata asa (controlul OpenFileDialog1 trebuie sa fie selectat):

Fereastra de proprietati

Cele mai importante proprietati sunt urmatoarele:
CheckFileExists: daca valoarea este setata la true, se verifica existenta fisierului selectat iar in cazul in care acesta nu exista apare un anunt care instiinteaza utilizatorul ca fisierul selectat nu exista fizic pe disc.
FileName: contine fisierul selectat de user (daca a fost selectat).
FileNames: daca este permisa selectarea multipla, contine numele fiserelor selectate.
Filter: contine un filtru care forteaza afisarea fisierelor dupa un anumit filtru. De exemplu, pentru a afisa numai fisierele de tip avi, filtrul va fi setat in felul urmator: Filme avi|*.avi.
FilterIndex: daca sunt definite mai multe filtre, FilterIndex stabileste care filtru va fi selectat.
InitialDirectory: folderul initial deschis de aceasta fereastra.
Multiselect: daca e setat true, se permite selectarea mai multor fisiere.
Title: fereastra poate primi un titlu stabilit de programator – default este Open.

Cam astea sunt cele mai importante proprietati – nu sunt toate. O lista completa poate fi vazuta pe msdn.

Hai sa facem urmatorul exercitiu: sa se creeze o aplicatie winform care sa permita utilizatorului sa selecteze fisiere de pe disc. Fisierele selectate vor fi afisate intr-o lista de tip ListBox.
Pentru rezolvarea acestui exercitiu voi folosi intr-un priect winform 3 componente: un openfiledialog, un buton si un listbox. Toate asceste componente se trag din fereastra ToolBox (Ctrl-Alt-X) in form-ul curent.
Voi seta rumatoarele proprietati acestor componete:
Butonul se va numi: btnOpen si va avea setat proprietatea Text Open Files. Cand userul va face click pe acest buton voi executa metoda btnOpen_Click(). Obiectul ListBox se va numi lstFiles. Voi seta proprietatea Text a formului Exercitiu deschidere fisiere. Si, am uitat ceea ce era cel mai important: in openFileDialog1 voi seta proprietatea Multiselect true, pentru a permite selectarea mai multor fisisere.
Pentru a arata mai bine in fereastra, voi seta proprietate Dock a butonului Top iar a listBox-ului Fill. Acum fereastra ar trebui sa arate asa:

Fereastra initiala

Singurul block de cod pe care trebuie sa il mai scriu acum este urmatorul (tratarea evenimentului click pentru butonul btnOpen):

        private void btnOpen_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                for (int i = 0; i < openFileDialog1.FileNames.Length; i++)
                {
                    lstFiles.Items.Add(openFileDialog1.FileNames[i]);
                }
            }
        }

De remarcat numai ca afisez fereastra cu openFileDialog1.ShowDialog(). Aceasta metoda returneaza un Enum de tip DialogResult. Daca userul va click-a butonul Open, fereastra va returna DialogResult.OK. Daca userul nu apasa butonul Open, nu voi incarca fiserele selectate in lista mea.

Pe scurt prezentat cam asta e acest control – fereastra de dialog. In unul dintre articolele urmatoare voi continua sa prezint ferestrele de dialog incluse in .Net framework.

Codul exemplu pentru acest articol – in curand! (uploadul a dat cu erroare in momentul scrierii articolului)

Category: Uncategorized

    Pingback/Trackback

    Tweets that mention Fereastra de dialog Open File -- Topsy.com

Your email address will not be published. Required fields are marked *

*