Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Ferestre de dialog in .Net – Color Picker

.Net are incluse o serie de ferestre de dialog standard, pe care userul obisnuit le cunoaste din aplicatii pe care le foloseste zi de zi. Astazi voi vorbi despre ColorPicker – un control, fereastra dialog, care permite alegerea unei culori.
Toti utilizatorii unei aplicatii office cunosc, cred, ce e un ColorPicker, chiar daca nu stiu ca asta e numele acelei ferestre cu ajutorul careia ne putem selecta o culoare pe care sa o aplicam textului, sau oricarui element grafic cu care lucram.
Pentru un programator .Net este foarte simplu de introdus un ColorPicker intr-o aplicatie. Fereastra de alegere a unei culori inclusa prestabilit in librariile .Net-ului arata asa:

Color Picker

Cum se foloseste? Pentru a exemplifica voi crea o aplicatie simpla, un form pe care voi adauga un Panel. Cand userul va face dublu click pe acest panel, ii voi deschide fereastra de alegere a unei culori, iar daca in aceastafereastra userul va apasa pe butonul Ok, culoarea panelului va fi setata la culoarea aleasa din fereastra colorPicker.
Se creaza o aplicatie noua, de tip winform. Pe formul aplicatiei se adauga un Panel. Din meniul tools, din tabul Dialogs, se include in aplicatie (drag&drop) un control Color Dialog.

Color Dialog in meniul Tools

Odata inclus in aplicatie, aceasta fereastra dialog poate fi folosita ori de cate ori avem nevoie sa alegem o culoare. Nu avem nevoie de mai mult de o instanta a acestui control in toata aplicatia, indiferent cat de mare/complexa este ea.
Cum stim ca avem un astfel de control inclus sa nu in proiectul curent? Simplu: dupa includere (drag&drop) in partea de jos a ferestrei apare o bara noua:

Odata selectat din aceasta bara acest control, avem acces la fereastra lui de proprietati, care arata asa:

Fereastra de proprietati

Cele mai importante proprietati sunt urmatoarele:
AllowFullOpen – daca aceasta proprietate e setata False, fereastra de culori nu va permite alegerea unor culori in afara celor standard. Default este True.
Color – Culoarea selectata cand fereastra va fi deschisa. Default este negru.
FullOpen – indica modul cum va fi deschisa fereastra de culori: in modul simplu, sau cu partea din care userul poate contrui culoarea pe care o vrea inchisa (nevizibila), sau in modul full.
Astea sunt proprietatile cele mai importante. Valorile default ale proprietatilor sunt ok pentru marea majoritate a aplicatiilor care au nevoie de un astfel de control.

Revenind la demostrarea utilizarii acestui control, am pana acum un Panel, un ColorDialog. Tot ce mai am nevoie este ca atunci cand userul click-eaza (dublu click) pe panel sa ii deschis fereastra de unde sa isi aleaga culoarea preferata. Pentru a face asta, adaug in constructorul ferestrei urmatorul cod:
pnlBgColor.DoubleClick+=new EventHandler(pnlBgColor_DoubleClick);
care va arata asa:

        public Form1()
        {
            InitializeComponent();
            pnlBgColor.DoubleClick+=new EventHandler(pnlBgColor_DoubleClick);
        }

Ce imi ramane acum sa fac e sa scriu codul pentru metoda pnlBgColor_DoubleClick.
Acesta arata asa:

        private void pnlBgColor_DoubleClick(object sender, EventArgs e)
        {
            Panel p = sender as Panel;
            if (p == null) return;
            if (colorDialog1.ShowDialog() == DialogResult.OK)  //daca userul apasa Ok
            {
                p.BackColor = colorDialog1.Color;
            }
        }

Acum, dupa ce userul a apasat Ok, culoarea de fundal Panel-ului este culoarea aleasa de user.

In articolele viitoare voi continua sa prezint controalele de tp dialog standard incluse in .Net.

Category: Uncategorized

Your email address will not be published. Required fields are marked *

*