0. Šta su prozori za dijalog?

Prozori za dijalog su specijalni prozori koji omogućavaju korisnicima da unesu dodatne informacije ili izvrše radnje unutar aplikacije. U okviru Windows Forms aplikacija u C#, dijalog za snimanje fajlova omogućava korisnicima da izaberu gde i pod kojim imenom da sačuvaju fajl.

Najčešće korišćeni dijalozi:
  • OpenFileDialog: Omogućava korisniku da izabere fajl za otvaranje.
  • SaveFileDialog: Omogućava korisniku da izabere putanju i ime fajla za čuvanje.
  • FolderBrowserDialog: Omogućava izbor direktorijuma.
  • ColorDialog: Omogućava izbor boje.

U ovoj lekciji, fokusiraćemo se na SaveFileDialog, dijalog koji omogućava korisniku da snimi fajl.


1. Prozori za dijalog Snimi

U nastavku je video snimak (bez tona) u kojem se na najlakši (i najbrži) način demonstrira kako se koristi dijalog za snimanje fajlova:

 (Malo detaljnije objašnjenje lekcije je na stranama od 80 do 88 u knjizi za koju je postavljen link za preuzimanje nakon ove lekcije)


SaveFileDialog je klasa koja se koristi za prikazivanje dijaloga za snimanje fajla. Kada korisnik unese ime fajla i odabere putanju, aplikacija može da sačuva podatke u izabranom fajlu.

Klikom na obojeni deo možete da vidite , ... , ...   i (opciono)  .

Osnovna svojstva klase SaveFileDialog:
  • Filter: Definiše tipove fajlova koji se mogu snimiti. Na primer, moguće je snimiti samo tekstualne fajlove, slike itd.
  • InitialDirectory: Postavlja početni direktorijum koji će se prikazati kada se dijalog otvori.
  • FileName: Vraća ili postavlja ime izabranog fajla.
  • OverwritePrompt: Ukoliko je postavljeno na true, dijalog će pitati korisnika da potvrdi prepisivanje postojećeg fajla.
Metoda klase SaveFileDialog:
  • ShowDialog(): Prikazuje dijalog korisniku. Vraća rezultat koji pokazujeda li je korisnik potvrdio snimanje fajla (DialogResult.OK) ili je odustao (DialogResult.Cancel).
Koraci za implementaciju CloseFileDialog-a iz programskog koda:
  1. Pokrenuti Visual Studio: Kreirati novi Windows Forms projekat.
  2. Dodavanje dugmeta za snimanje dijaloga: U formu dodati dugme (Button) koje će korisniku omogućiti da otvori dijalog za snimanje fajla.
  3. Kreirati SaveFileDialog-a: U kodu forme kreirati instancu klase SaveFileDialog i prikazati dijalog prilikom klika na dugme.
Primer programskog koda (implementacija):
using System;
using System.IO;
using System.Windows.Forms;

namespace SaveFileDialogExample
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}

// Događaj za dugme koje otvara SaveFileDialog
private void btnSaveFile_Click(object sender, EventArgs e)
{
// Kreiraj SaveFileDialog instancu
SaveFileDialog saveFileDialog = new SaveFileDialog();

// Postavi filter za tip fajla
saveFileDialog.Filter = "Text Files|*.txt|All Files|*.*";
saveFileDialog.Title = "Sačuvaj fajl";
saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

// Prikazivanje dijaloga i provera da li je fajl izabran
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
// Snimi sadržaj u izabrani fajl
File.WriteAllText(saveFileDialog.FileName, textBoxContent.Text);
MessageBox.Show("Fajl je sačuvan!");
}
}
}
}

Objašnjenje koda:

  • saveFileDialog.Filter: Ovaj deo koda definiše koji tipovi fajlova će biti prikazani u dijalogu. U ovom slučaju, prikazuju se tekstualni fajlovi (.txt) i svi fajlovi (*.*).
  • saveFileDialog.ShowDialog(): Prikazuje dijalog korisniku i vraća DialogResult. Ako korisnik potvrdi snimanje, rezultat će biti OK, a ako odustane, biće Cancel.
  • File.WriteAllText(): Ova metoda snima sadržaj iz tekstualnog polja (TextBox) u fajl na putanji koju je korisnik odabrao.

Zadatak: 

  1. U aplikaciju iz prethodne lekcije dodati:

    • Button: Dugme sa tekstom „Snimi fajl“.

  2. Kreirati događaj za dugme:

    • Dvostruko kliknuti na dugme u dizajneru kako bi se automatski generisao metod za događaj Click. Unutar ove metode postaviti kod za otvaranje dijaloga i snimanje sadržaja fajla.


Zadaci za vežbu - za bolje učenika na času, a za ostale kod kuće:

  1. Napraviti Windows Forms aplikaciju koja koristi SaveFileDialog za snimanje slike (npr. unosi putanju slike ili bitmapu).
  2. Eksperimentisati sa različitim filterima i dodati mogućnost da se snimi više formata (npr. .txt, .jpg, .png).

LINK (knjiga): Osnove programskog jezika C#.NET

Last modified: Tuesday, 2 December 2025, 5:49 AM