Kontrola OpenFileDialog služi za traženje (browse) i selektovanje fajlova.

Najčešće će Open File Dialog-a da izgleda kao na sledećoj slici gde se lepo vidi mogućnost korišćenja opcija iz Windows Explorer-a.

OpenFileDialog In C#

Kreiranje OpenFileDialog-a

Postoje dva načina kreiranja OpenFileDialog-a:

    • korišćenjem Forms designer-a u okviru design-time, ili

    • korišćenjem klase OpenFileDialog class u programskom kodu dinamički ( run-time )

Za razliku od nekih drugih Windows Forms kontrola, OpenFileDialog niti ima niti mu trebaju visual properties.

Napomena:
Iako imate opciju za kreiranje OpenFileDialog u design-time, lakše je da se kreira dinamički u programskom kodu (run-time).


Design-time

Da bi se kreirao dijalog OpenFileDialog u toku dizajna formi, samo treba prevući kontrolu iz Toolbox-a na Formu. Nakon toga, ispod ćete videti nešto ovako:

OpenFileDialog In C#

U pozadini, dodavanjem dijaloga OpenFileDialog na Formu dodaju se sledeće dve linije koda:

  1. private System.Windows.Forms.OpenFileDialog openFileDialog1;   
  2. this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();   

Run-time

Dinamički, u programskom kodu, ako se želi kreirati kontrola OpenFileDialog, ono što treba uraditi je kreirati instancu klase OpenFileDialog, postaviti željene Propertije i dodati klasu OpenFileDialog u kontrole na Formi.

Sledeći primer programskog koda kreira OpenFileDialog:

	OpenFileDialog openFileDialog1 = new OpenFileDialog();   

Metoda ShowDialog se koristi za prikazivanje dijalogaOpenFileDialog.

	openFileDialog1.ShowDialog();   

Onog momenta kada se pozove metoda ShowDialog, moguće je pretraživanje među fajlovima (browse) i selektovanje fajla.


Podešavanje OpenFileDialog Propertija


Najlakši način je vizuelno – korišćenjem Properties Window (ako ga ne vidite sa strane, uvek možete proveriti sa View-Properties Window ili F4 ili desni klik na kontrolu i opcija Properties).

Properties Window - slika

Initial i Restore Directories


InitialDirectory property – direktorijum koji će da se prikaže kada se prvi put otvori dijalog. Na primer, ako želimo da to bude C:

     openFileDialog1.InitialDirectory = @"C:\";   

(oznaka @ se koristi da ne bismo ispred svakog specijalnog znaka u stringu stavljali \ )

OPCIONO: Ako se postavi na true properti RestoreDirectory, to znači da će se prilikom zatvaranja dijaloga u podešavanjima vratiti tekući direktorijum na kojem je pozicionirano do momenta pozivanja dijaloga

     openFileDialog1.RestoreDirectory = true;   


Title

Ovaj properti se koristi za postavljanje naslova (Title) na dijalog, kao na primer:

     openFileDialog1.Title = "Odaberite Text Fajl";


Default Extension

Ovaj properti predstavlja podrazumevanu (default) ekstenziju za naziv fajla.

Ako želite, na primer, da to bude txt, onda:

     openFileDialog1.DefaultExt = "txt";
  

Filter

Ovo se koristi za filtriranje vrste fajla, pa će biti vidljivi samo fajlovi koji zadovoljavaju navedene uslove. Na primer, ako se želi ograničiti da se vide samo tekstualni fajlovi kao jedna opcija, a kao druga opcija da se vide svi fajlovi:

     openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";   


Check File Exists i Check Path Exists

Properti CheckFileExists ukazuje da li će da bude prikazano upozorenje ako korisnik specificira naziv fajla koji ne postoji. Slično tome, properti CheckPathExists ukazuje da li će da bude prikazano upozorenje ako korisnik specificira putanju koja ne postoji.

  1. openFileDialog1.CheckFileExists = true;   
  2. openFileDialog1.CheckPathExists = true;   


File Name i File Names

Properti FileName predstavlja ime fajla koji je selektovan u dijalogu.

Na primer, ako želite da u tekstboksu prikažete koje je ime fajla koje je odabrano:

     textBox1.Text = openFileDialog1.FileName;   

E sada, postoji i opcija MultiSelect property, koja ako je postavljena na true dozvoljava da se istovremeno selektuje više fajlova. Tada koristimo properti FileNames za prikaz svih imena fajlova koji su selektovani. Pokušajte ovo:

   this.openFileDialog1.Multiselect = true;   
foreach (String file in openFileDialog1.FileNames)
{
MessageBox.Show(file);
}

Implemenacija OpenFileDialog-a u WinForms Aplikaciji


U ovom primeru prvo treba kreirati formu koja na sebi ima dva Button-a, TextBox i container kao na slici:

slika forme sa kojom radimo

Klikom na dugme gde piše „Browse” treba da se otvori open file dialog da bi korisnici mogli da odaberu tekstualne fajlove, kao na slici:

OpenFileDialog In C#

Sledeći primer programskog koda je u delu koji se pokaže kada se iz dizajnera uradi dvoklik na Button za Browse. Kada se odabere tekstualni fajl, njegov naziv će biti prikazan u TextBox-u.
 private void BrowseButton_Click(object sender, EventArgs e)   
{
OpenFileDialog openFileDialog1 = new OpenFileDialog
{
InitialDirectory = @"D:\",
Title = "Browse Text Files",
CheckFileExists = true,
CheckPathExists = true,
DefaultExt = "txt",
Filter = "txt files (*.txt)|*.txt",
RestoreDirectory = true,
};
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = openFileDialog1.FileName;
}
}


U nastavku je progamski kod koji može da se postavi za dugme Browse Multiple Files :

private void BrowseMultipleButton_Click(object sender, EventArgs e)   
{
this.openFileDialog1.Filter =
"Images (*.BMP;*.JPG;*.GIF,*.PNG,*.TIFF)|*.BMP;*.JPG;*.GIF;*.PNG;*.TIFF|" +
"All files (*.*)|*.*";

this.openFileDialog1.Multiselect = true;
this.openFileDialog1.Title = "Select Photos";

DialogResult dr = this.openFileDialog1.ShowDialog();
if (dr == System.Windows.Forms.DialogResult.OK)
{
foreach (String file in openFileDialog1.FileNames)
{
try
{
PictureBox imageControl = new PictureBox();
imageControl.Height = 400;
imageControl.Width = 400;
Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);
Bitmap myBitmap = new Bitmap(file);
Image myThumbnail = myBitmap.GetThumbnailImage(300, 300, myCallback, IntPtr.Zero);
imageControl.Image = myThumbnail;
PhotoGallary.Controls.Add(imageControl);
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
}
}
public bool ThumbnailCallback()
{
return false;
}

Izlaz će da izgleda ovako:

OpenFileDialog control in C#



Izvor: https://www.c-sharpcorner.com/UploadFile/mahesh/openfiledialog-in-C-Sharp/

Last modified: Tuesday, 2 February 2021, 1:02 PM