Validation of input elements and Form Closing

One of very often questions ask by WinForms developers is “How to make sure that if Form is Closing, no validation occurs in contained controls”?

For reference, validating input is rather straightforward:

1. Add ErrorProvider to Form
2. For control in question, add handlers for Validating and Validated events:


        private void tbFixPath_Validating(object sender, CancelEventArgs e)
        {
            if (!ControlValidated(tbFixPath.Text))
            {
                // Cancel the event and select the text to be corrected by the user.
                e.Cancel = true;
                tbFixPath.Select(0, tbFixPath.Text.Length);

                // Set the ErrorProvider error with the text to display. 
                this.errorProvider1.SetError(tbFixPath, 
                   "Sorry, something went wrong during validation. Please check.");
            }
        }

        private void tbFixPath_Validated(object sender, EventArgs e)
        {
                // After successful validation, clear error message.
                errorProvider1.SetError(tbFixPath, "");
        }

3. Everything is fine, until user tries to close form where some input elements are not validated – closing will fail. In order to prevent this, if you are absolutely sure that you want to close such form, just add:


        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
                e.Cancel = false;
        }

so that no cancellation of closing event will occur.

I know that this is basic 🙂 but after I was ask for 10th time in 6 months, I figured that is better to note this somewhere 🙂

MS Visual Studio Express

http://msdn.microsoft.com/vstudio/express/

Verzija Veličina Licenca Cena
2005 70 – 450 Mb Besplatan

MS Visual Studio Express 2005

U cilju promovisanja nove verzije Visual Studio paketa za razvoj programa (verzija 2005) Microsoft je povukao fenomenalan potez – napravio je Express verzije ovog paketa i čak ih deli besplatno u prvih godinu dana (do novembra 2006.)!

Iako MS reklamira Express verzije kao oslabljenu verziju “velikog” paketa, namenjenje studentima i svima koji žele da se upoznaju sa samim okruženjem i .Net Framework-om 2.0, to su ozbiljni, zaokruženi paketi za razvoj, sa sve SQL Express 2005 bazom podataka.

MS Express ima nekoliko izdanja podeljenih u dve grupe:

  1. Visual Web Developer 2005 Express Edition
    • Podržava i C# i VB.Net kao jezike za razvoj
    • Koristi ASP.NET 2.0 nad .Net Frameworkom 2.0 za Web aplikacije
    • Download ISO slike (449,848 KB)
  2. Grupa za razvoj Windows (“desktop”) aplikacija:

Ako izaberete skidanje ISO slike (slika celog CD-a), pored samog Express paketa dobićete i odgovarajuću biblioteku znanja (MSDN Express) kao i SQL Express 2005 bazu, za razvoj aplikacija nad bazom podataka.

Toplo preporučujem da se po instalaciji paketa registrujete (kada ste u Expressu: Help -> Register Product) i time dobijete registracioni kod kao i razne pogodnosti (250 slika iz Corbis Image Pack-a za vaše programe, preko 100 ikonica u IconBuffet Studio Edition Icon Suite itd).

Da sumiram:

  • Ako skinete, instalirate i registrujete odgovarajući Express paket do novembra 2006. imate pravo na besplatno korišćenje sve dok je paket “živ”.
  • Nema nikakvih ograničenja za distribuciju aplikacija napravljenih ovim paketima.
  • Postoji gomila Starter Kit – gotovih aplikacija koje samo čekaju da ih preuzmete, analizirate / naučite nešto novo ili prilagodite svojim zahtevima.

Update 25.april:

Microsoft je odlučio da Express izdanja budu besplatna bez ograničenja! Detalji: Visual Studio 2005 Express Announcements!

Takođe, obavezno svratite na sajt Coding4Fun.

Update 15.11.2006: Izašao je Visual Studio 2005 Express SP1. Preporučujem da ga skinete i instalirate (za odgovarajuću verziju Express-a koju koristitite):
http://www.microsoft.com/downloads/details.aspx?familyid=7B0B0339-613A-46E6-AB4D-080D4D4A8C4E

Update 01.02.2008: Sada je tekuća verzija Visual Studio 2008 Express – topla preporuka!