Kontrola SaveFileDialog se koristi za opciju sačuvavanja fajla uz Windows SaveFileDialog. Najčešće će SaveFileDialog da izgleda kao na sledećoj slici gde se lepo vidi mogućnost korišćenja opcija iz Windows Explorer-a, što uključuje navigaciju među folderima i čuvanje fajla u folderu.



Kreiranje SaveFileDialog-a

Postoje dva načina kreiranja SaveFileDialog-a:

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

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

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

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


Design-time

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

SaveFileDialog

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

  1. private System.Windows.Forms.SaveFileDialog saveFileDialog1;

  2. this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();

Run-time

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

1. korak je da se kreira instanca klase SaveFileDialog:

  1. SaveFileDialog SaveFileDialog1 = new SaveFileDialog();

Metoda ShowDialog se koristi za prikazivanje dijaloga SaveFileDialog:

  1. SaveFileDialog1.ShowDialog();

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

Podešavanje SaveFileDialog 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).

Evo kako to izgleda:



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:

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

	SaveFileDialog1.RestoreDirectory = true;  

Title

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

	SaveFileDialog1.Title = "Odaberite Text Fajl";

Default Extension

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

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

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

	SaveFileDialog1.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. SaveFileDialog1.CheckFileExists = true;

  2. SaveFileDialog1.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 = SaveFileDialog1.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.SaveFileDialog1.Multiselect = true;    
foreach(String file in SaveFileDialog1.FileNames) {
MessageBox.Show(file);
}

Zaključak

SaveFileDialog će korisnicima dati mogućnost da koriste Windows Save File Dialog i da mogu da sačuvaju fajlove.

Ovde je samo pokazano kako da se koristi Windows Save File Dialog i kako da se postave neki propertiji ako se koristi Windows Forms aplikacija.

U slučaju konzolne aplikacije:

  • prvo se u okviru Solution Explorera,

  • u Resources projekta treba dodati System.Windows.Forms,

  • a zatim se na vrhu treba dodati using System.Windows.Forms;,

  • i pre Main metode treba dodati [STAThread].


Ako ovo nije bilo dovoljno jasno, u nastavku je dato uputstvo u slikama:

Korišćenje SaveFileDialog-a u Windows.Forms



Uvod

Kako koristiti SaveFileDialog u Windows.Forms aplikaciji (Visual Studio 2017).

SaveFileDialog

SaveFileDialog vam je potreban kada želite da sačuvate fajlove.

Korisnik odredi ime fajla, a onda se može koristiti event handling mehanizam za dodavanje specifičnog programskog koda. Sa time se upisuje u fajl koji korisnik želi da sačuva.

PRVI KORAK – Kreirati novi projekat

New Project → Visual C# → Windows Forms App (.NET Framework), upišite naziv projekta i odaberite lokaciju gde ćete sačuvati projekat, i na kraju klik na OK.

SaveFileDialog In Windows Forms

Sa ovom akcijom se kreira WinForms projekat sa podrazumevanom jednom formom i to bi trebalo da se vidi u Windows Designer-u.

DRUGI KORAK - Drag & Drop Kontrola

Dodati SaveFileDialog na formu tako što se prevuče iz Toolbox-a i drop-uje na formu.

SaveFileDialog In Windows Forms

Dodatne kontrole

Sada dodati još neke kontrole na formu prevlačenjem iz Toolbox-a, kao što su Font Dialog, Color Dialog, Label, Button, i po želji kod njih promeniti neke od propertija.

Button ćemo koristiti da se otvori SaveFileDialog. Kao i kod ostalih dijaloga, da bi se dijalog prikazao, mora da se pozove metoda ShowDialog.

Uraditi dvoklik na Button da bi se rešio programski deo.

( Font i Color Dialog se koriste za menjanje fonta i boja sadržaja koji je prikazan na formi.)


TREĆI KORAKpisanje programskog koda za događaj kada se klikne na Button

U nastavku je dat primer programskog koda, gde se prvo promeni boja i font pomoću odgovarajućih kontrola, a onda sačuva pomoću SaveFileDialog-a:

  1. public partial class Form1 : Form 
  2. {  
  3.   public Form1()  
  4.   {  
  5.     InitializeComponent();
  6.    }  
  7.   private void 	button1_Click(object sender, EventArgs e)  
  8.    {  
  9.      DialogResult colorResult = colorDialog1.ShowDialog();  
  10.      if ( colorResult == DialogResult.OK)  
  11.      {  
  12.        panel1.BackColor = colorDialog1.Color;  
  13.      }  
  14.    }  
  15.    private void button2_Click(object sender, EventArgs e)  
  16.    {  
  17.      DialogResult fontResult = fontDialog1.ShowDialog();  
  18.      {  
  19.        if (fontResult == DialogResult.OK)  
  20.        {  
  21.           label1.Font = fontDialog1.Font;  
  22.        }  
  23.      }  
  24.    }  
  25.    private void  button3_Click(object sender, EventArgs e)  
  26.    {  
  27.      String font = fontDialog1.Font.Name;  
  28.      String color = colorDialog1.Color.ToString();  
  29.      DialogResult saveresult = saveFileDialog1.ShowDialog();   
  30.      if ( saveresult == DialogResult.OK)   
  31.      {  
  32.        try  {  
  33.           String path = saveFileDialog1.FileName;   
  34.           StreamWriter sw = new StreamWriter(path);   
  35.           sw.WriteLine(font);  
  36.           sw.WriteLine(color);  
  37.           sw.Close();  
  38.         }  
  39.        catch( Exception  error)  
  40.        {  MessageBox.Show("oops");   }  
  41.      }  
  42.     }
  43.    }   
  44. }   


ČETVRTI KORAK - Compile and Run


Samo compile and run.

Klik na dugme za "Change color". Odabrati boju i klik na OK.

SaveFileDialog In Windows Forms

Nakon izbora boje, klik na dugme za "Change font". Odabrati font i klik na OK.

SaveFileDialog In Windows Forms

Na kraju, klik na dugme "Save". Fajl može da bude sačuvan na disku u lokalnom folderu. U odabrani fajl će biti upisani font i boja. Taj fajl možete otvoriti pomoću Notepad-a.

SaveFileDialog In Windows Forms

SaveFileDialog In Windows Forms


Resursi:

https://www.c-sharpcorner.com/uploadfile/mahesh/savefiledialog-in-C-Sharp/

https://www.c-sharpcorner.com/article/using-savefiledialog-in-windo/

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