***31.10. Prozori za dijalog "Otvori" (Open File Dialog) - 1. čas
0. Šta su prozori za dijalog?
Prozori za dijalog su specijalni prozori koje aplikacije koriste kako bi prikupile dodatne informacije od korisnika, poput izbora fajla, foldera, boje ili šablona. U okviru Windows Forms aplikacija u C#, dijalog za otvaranje fajlova omogućava korisniku da pretražuje i bira fajlove iz lokalnog sistema.
Najčešće korišćeni dijalozi:
- OpenFileDialog: Omogućava korisniku da izabere fajl za otvaranje.
- SaveFileDialog: Omogućava korisniku da izabere fajl za čuvanje.
- FolderBrowserDialog: Omogućava izbor direktorijuma.
- ColorDialog: Omogućava izbor boje.
U ovoj lekciji, fokusiraćemo se na OpenFileDialog, dijalog koji omogućava izbor fajla za otvaranje.
1. Prozori za dijalog Otvori
U nastavku je video snimak (bez tona) u kojem se na najlakši (i najbrži) način demonstrira kako se koristi dijalog za otvaranje fajlova:
( Malko detaljnije objašnjenje lekcije je na stranama od 80 do 88 u knjizi za koju je postavljen link na dnu ove lekcije)
OpenFileDialog je klasa koja se koristi za prikazivanje dijaloga za izbor fajla. Kada korisnik izabere fajl i potvrdi, aplikacija može koristiti putanju fajla kako bi pročitala njegov sadržaj ili izvršila neku drugu radnju.
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 OpenFileDialog:
- Filter: Definiše tipove fajlova koji se mogu prikazati u dijalogu. Na primer, moguće je prikazati samo slike, tekstualne fajlove itd.
- InitialDirectory: Postavlja početni direktorijum koji će se prikazati kada se dijalog otvori.
- FileName: Vraća ili postavlja ime izabranog fajla.
- Multiselect: Omogućava korisniku da izabere više fajlova ako je postavljeno na
True.
Metoda klase OpenFileDialog:
- ShowDialog(): Prikazuje dijalog korisniku. Vraća rezultat koji pokazuje da li je korisnik izabrao fajl (
DialogResult.OK) ili je odustao (DialogResult.Cancel).
Koraci za implementaciju OpenFileDialog-a iz programskog koda:
- Pokrenuti Visual Studio: Kreirati novi Windows Forms projekat.
- Dodati dugme za otvaranje dijaloga: U formu dodati dugme (
Button) koje će korisniku omogućiti da otvori dijalog za izbor fajla. - Kreirati OpenFileDialog: U kodu forme kreirati instancu klase OpenFileDialog i prikazati dijalog prilikom klika na dugme.
Primer programskog koda (implementacija):
using System;
using System.Windows.Forms;
namespace OpenFileDialogExample
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
// Događaj za dugme koje otvara OpenFileDialog
private void btnOpenFile_Click(object sender, EventArgs e)
{
// Kreiraj OpenFileDialog instancu
OpenFileDialog openFileDialog = new OpenFileDialog();
// Postavi filter da prikazuje samo tekstualne fajlove
openFileDialog.Filter = "Text Files|*.txt|All Files|*.*";
openFileDialog.Title = "Izaberite fajl za otvaranje";
// Prikazivanje dijaloga i provera da li je fajl izabran
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
// Prikazivanje izabranog fajla u TextBox-u ili Labeli
textBoxFilePath.Text = openFileDialog.FileName;
// Opcionalno, pročitaj sadržaj fajla
string fileContent = System.IO.File.ReadAllText(openFileDialog.FileName);
textBoxFileContent.Text = fileContent;
}
}
}
}
Objašnjenje koda:
- openFileDialog.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 (*.*). - openFileDialog.ShowDialog(): Prikazuje dijalog korisniku i vraća
DialogResult. Ako korisnik izabere fajl, rezultat će bitiOK, a ako odustane, bićeCancel. - System.IO.File.ReadAllText(): Metoda koja čita ceo sadržaj fajla i vraća ga kao string. Sadržaj fajla se prikazuje u tekstualnom polju (
TextBox).
Zadatak:
- Kreirati aplikaciju koja ima sledeće kontrole:
- Button: Dugme sa tekstom „Otvori fajl“.
- TextBox: Polje za prikaz putanje izabranog fajla.
- Multiline TextBox: Polje za prikaz sadržaja fajla (podesi svojstvo
MultilinenaTrueda bi polje moglo prikazivati više redova teksta).
-
Kreirati događaj za dugme:
- Dvoklik na dugme u dizajneru kako bi automatski generisali metodu za događaj
Click. Unutar ove metode postaviti kod za otvaranje dijaloga i prikazivanje sadržaja fajla.
- Dvoklik na dugme u dizajneru kako bi automatski generisali metodu za događaj
Zadaci za vežbu - za bolje učenika na času, a za ostale kod kuće:
- Napravi Windows Forms aplikaciju koja koristi OpenFileDialog za otvaranje slike i prikazuje je u PictureBox-u.
- Eksperimentisati sa različitim filterima i postaviti mogućnost otvaranja više fajlova odjednom.