sâmbătă, 26 martie 2016

C#19 Menu, dialoguri predefinite

Dialogurile predefinite sunt forme standardizate de dialog,  incorporate in .NET, care pot fi inglobate in aplicatia noastra. Exemple de dialoguri predefinite sunt dialogul OpenFile, SaveFile, FontColor, PrintDialog, etc. Ele vor functiona in applicatia noastra in exact aceeasi maniera ca si in Word sau Paint, de exemplu.

Vom face o aplicatie care utilizeaza un meniu si cateva dialoguri predefinite, prilej cu care vom lucra cu cateva dintre  metodele si proprietatile membru ale acestor controale.  Celelalte metode si proprietati se pot descoperi cu ajutorul help-ului mediului de programare.
Deschidem un proiect nou, pe care il denumim DialoguriPredefinite. Tragem pe suprafata formei Form1 un control de tipul MenuStrip. Facand click pe suprafata acestui control, el se expandeaza in jos si la dreapta, creand poziti pentru noi itemi. Vom crea doua meniuri  pe bara de meniu: Fisier si Format. Sub meniul Fisier vom crea alti  trei itemi: Deschide, Salveaza  si Iesire.  Sub meniul Format cream itemul Font si itemul Color. Vom crea pentru fiecare item in parte dialogul aferent,  insa nu vom executa efectiv si operatiile de deschidere si salvare de fisier.

Adăugăm formei dialogurile predefinite, prin drag&drop de la panoul Toolbox către suprafața formei. Observăm că dialogurile trase nu sunt localizate vizual pe suprafața formei, dar ele sunt înglobate. Sunt create obiectele aferente, cu numere de ordine începând cu 1. Vom avea astfel un obiect openFileDialog1, care are proprietăți ca Title, Filter, etc, a căror utilizare se va vedea mai jos.

Pentru tratarea evenimentului Click asupra unui item de meniu, facem dublu click pe acel item.

Meniul Deschide fisier

Introducem acest cod in handlerul evenimentului click:

        private void deschideToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //titlul dialogului
            openFileDialog1.Title = "Deschide fisier";
            // seteaza tipurille de fisier
            openFileDialog1.Filter = "Fisiere text |*.txt| fisiere doc|*.doc|fisiere docx |*.docx";
            //in comboBox-ul File name nu vrem sa apara la deschiderea dialogului nici un nume
            openFileDialog1.FileName = "";
            //directorul care se deschide in mod implicit
            openFileDialog1.InitialDirectory = "MyDocuments";
            //atentionare daca numele nu exista
            openFileDialog1.CheckFileExists = true;
            //deschide dialogul OpennFileDialog
            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            { //cod care deschide fisierul
            }
        }


Filtrul pentru deschiderea fisierului are  sintaxa urmatoare: explicatie | filtru |explicatie | filtru ...etc.

In mod asemanator, introducem handlerele petru click in celelalte optiuni ale meniului.
Aplicatia va arata in felul urmator:

namespace DialoguriPredefinite
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void deschideToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //titlul dialogului
            openFileDialog1.Title = "Deschide fisier";
            // seteaza tipurille de fisier
            openFileDialog1.Filter = "Fisiere text |*.txt| fisiere doc|*.doc|fisiere docx |*.docx";
            //in comboBox-ul File name nu vrem sa apara la deschiderea dialogului nici un nume
            openFileDialog1.FileName = "";
            //directorul care se deschide in mod implicit
            openFileDialog1.InitialDirectory = "Desktop";
            //atentionare daca numele nu exista
            openFileDialog1.CheckFileExists = true;
            //deschide dialogul OpennFileDialog
            if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            { //cod care deschide fisierul
            }
        }


        private void salveazăCaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //titlul dialogului
            saveFileDialog1.Title = "salveaza fisierul";
            //extensia implicita de salvare
            saveFileDialog1.DefaultExt = ".txt";
            //atentionare de suprascriere
            saveFileDialog1.OverwritePrompt = true;
            //deschide dialogul de salvare fisier
            if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            { //cod care salveaza fisierul
            }
        }


        private void iesireToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void fontToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // se deschide dialogul font
            if (fontDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            { //cod care reafiseaza documentul cu fontul ales de utilizator
            }
        }
        private void culoriToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //deschide dialogul ColorDialog
            if(colorDialog1.ShowDialog()==System.Windows.Forms.DialogResult.OK)
            {
                //cod care actualizeaza culorile in document
            }
        }
    }
}


Niciun comentariu:

Trimiteți un comentariu