Pagina personale di:
Carlo Vecchio
appunti di C#, R, SQL Server, ASP.NET, algoritmi, numeri
Vai ai contenuti

C# - Common Dialog

C#

Introduzione

  • I Common Dialog sono delle finestre comuni a tutte le applicazioni Windows.
  • Servono per eseguire compiti ben definiti e forniscono alle applicazioni una semplice interfaccia.
  • Sono implementati nel Sistema Operativo, perciò ogni applicazione mostrerà le stesse form.
  • Quelli di nostro interesse sono:
    • OpenFileDialog(): per scegliere quale file aprire.
    • SaveFileDialog(): per scegliere dove salvare un file e che nome dargli.
    • ColorDialog(): per scegliere un colore.
    • FontDialog(): per scegliere uno dei font installati nel sistema.
    • FolderBrowserDialog(): per scegliere una cartella.

OpenFileDialog
  • L'OpenFileDialog, permette di aprire una finestra e di scegliere un file.



  • Ecco un esempio di come si utilizza.

   OpenFileDialog ofd = new OpenFileDialog();
   ofd.Title = "Scegli il file da aprire";            // Cambia il titolo del form di dialogo.
   ofd.Filter = "Text files|*.txt|Pdf files|*.pdf";   // Imposta le estensioni dei file da filtrare.
   ofd.InitialDirectory = @"C:\";                     // Imposta la directory iniziale.
   DialogResult res = ofd.ShowDialog();

   if (res == DialogResult.OK)
   {
       // OK.
       string fileName = ofd.FileName;   // Directory + nome file.
       Console.WriteLine("Hai scelto il file '" + fileName + "'");
   }
   else
   {
       // Annulla o uscita.
       Console.WriteLine("Non hai scelto nessun file");
   }

  • La proprietà InitialDirectory, può essere impostata in modo da mostrare una cartella di sistema, come nell'esempio seguente:

   // Per impostare la directory iniziale con una delle directory di sistema.
   ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

SaveFileDialog
  • Il SaveFileDialog, permette di aprire una finestra e di scegliere dove salvare un file e quale nome dargli.



  • Ecco un esempio di come si utilizza.

   // Testo da salvare.
   StringBuilder sb = new StringBuilder();
   sb.AppendLine("Prima riga");
   sb.AppendLine("Seconda riga");
   sb.AppendLine("Terza riga");

   SaveFileDialog sfd = new SaveFileDialog();
   sfd.Title = "Salva il file";                       // Cambia il titolo del form di dialogo.
   sfd.Filter = "Text files|*.txt|Pdf files|*.pdf";   // Imposta le estensioni dei file da filtrare.
   sfd.InitialDirectory = @"C:\";                     // Imposta la directory iniziale.
   sfd.FileName = "prova.txt";                        // Imposta un nome file di default (l'utente può cambiarlo).
   DialogResult res = sfd.ShowDialog();

   if (res == DialogResult.OK)
   {
       // OK.
       string fileName = sfd.FileName;   // Directory + nome file.
       // Salvataggio del file.
       System.IO.StreamWriter file = new System.IO.StreamWriter(sfd.FileName);
       file.WriteLine(sb.ToString());
       file.Close();
       Console.WriteLine("File salvato: '" + fileName + "'");
   }
   else
   {
       // Annulla o uscita.
       Console.WriteLine("Non hai scelto nessun file");
   }

ColorDialog
  • Il ColorDialog, permette di aprire una finestra e di scegliere un colore.



  • Ecco un esempio di come si utilizza.

   ColorDialog cd = new ColorDialog();
   cd.AllowFullOpen = true;   // Se false disabilita il bottone 'Definisci colori personalizzati'. Default è True.
   cd.Color = Color.Red;      // Imposta un colore di default (l'utente può cambiarlo).
   DialogResult res = cd.ShowDialog();

   if (res == DialogResult.OK)
   {
       // OK.
       Color c = cd.Color;   // Colore selezionato.
       Console.WriteLine(String.Format("Hai scelto il colore RGB {0},{1},{2}", c.R, c.G, c.B));
   }
   else
   {
       // Annulla o uscita.
       Console.WriteLine("Non hai scelto nessun colore");
   }

  • Le seguenti proprietà hanno senso nei sistemi a 256 colori. Da diversi anni i computer gestiscono 256*256*256 = 16.777.216 colori, quindi possono essere ignorate.

   cd.AnyColor = false;       // Default è False.
   cd.SolidColorOnly = false; // Default è False.

FontDialog
  • Il FontDialog, permette di aprire una finestra e di scegliere un font.



  • Ecco un esempio di come si utilizza.

   FontDialog fd = new FontDialog();

   fd.Font = new Font("Verdana", 8);   // Imposta un font di default (l'utente può cambiarlo).
   fd.Color = Color.Red;               // Imposta un colore di default (l'utente può cambiarlo).
   fd.ShowApply = false;               // Default: false. Se true, mostra il bottone 'Applica'.
   fd.ShowColor = true;                // Default: false. Se true, mostra una casella di selezione del colore.
   fd.ShowEffects = true;              // Default: true.  Se false, nasconde le checkbox 'Barrato' e 'Sottolineato'.
   fd.ShowHelp = false;                // Default: false. Se true, mostra il bottone 'Help'.
   fd.MinSize = 10; fd.MaxSize = 20;   // Imposta un range di dimensione font.
   DialogResult res = fd.ShowDialog();

   if (res == DialogResult.OK)
   {
       // OK.
       Font f = fd.Font;     // Font selezionato dall'utente.
       Color c = fd.Color;   // Colore selezionato dall'utente.
       Console.WriteLine(String.Format("Hai scelto il font con nome {0}, dimensione {1}", f.Name, f.Size));
       Console.WriteLine(String.Format("Hai scelto il font con colore {0}", c.R + "-" + c.G + "-" + c.B));
   }
   else
   {
       // Annulla o uscita.
       Console.WriteLine("Non hai scelto nessun font");
   }

FolderBrowserDialog
  • Il FolderBrowserDialog, permette di aprire una finestra e di scegliere una cartella.



  • Ecco un esempio di come si utilizza.

   FolderBrowserDialog fbd = new FolderBrowserDialog();
   fbd.Description = "Scegli la cartella da aprire";
   fbd.SelectedPath = Environment.CurrentDirectory;   // Imposta la directory iniziale.
   DialogResult res = fbd.ShowDialog();

   if (res == DialogResult.OK)
   {
       // OK.
       string path = fbd.SelectedPath;   // Directory + nome file.
       Console.WriteLine("Hai scelto la cartella '" + path + "'");
   }
   else
   {
       // Annulla o uscita.
       Console.WriteLine("Non hai scelto nessuna cartella");
   }



© 2020 Carlo Vecchio
Torna ai contenuti