***31.10. Prozori za dijalog "Snimi" (Save File Dialog) - 2. čas ?
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 Osnovna svojstva , ... Metode , ... i (opciono) implementacija iz programskog koda - ako se ne koristi prevlačenje komponenti iz Toolboxa .
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:
- Pokrenuti Visual Studio: Kreirati novi Windows Forms projekat.
- Dodavanje dugmeta za snimanje dijaloga: U formu dodati dugme (
Button) koje će korisniku omogućiti da otvori dijalog za snimanje fajla. - 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 bitiOK, a ako odustane, bićeCancel. - File.WriteAllText(): Ova metoda snima sadržaj iz tekstualnog polja (
TextBox) u fajl na putanji koju je korisnik odabrao.
Zadatak:
- U aplikaciju iz prethodne lekcije dodati:
- Button: Dugme sa tekstom „Snimi fajl“.
- Button: Dugme sa tekstom „Snimi fajl“.
-
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.
- Dvostruko kliknuti na dugme u dizajneru kako bi se automatski generisao metod za događaj
Zadaci za vežbu - za bolje učenika na času, a za ostale kod kuće:
- Napraviti Windows Forms aplikaciju koja koristi SaveFileDialog za snimanje slike (npr. unosi putanju slike ili bitmapu).
- Eksperimentisati sa različitim filterima i dodati mogućnost da se snimi više formata (npr.
.txt,.jpg,.png).