Validating event is not working

1

I have this form:

Asthepersonplacesthedateofbirthandclicksonidentifycategory,twochecksaredone:

  • Ifthenamewasfilled;
  • Ifthedateofbirthisgreaterthanthecurrentdate;

Butthevalidationisnotworkingasitshould,seethecodes:

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespace_2.MatriculaAluno{publicpartialclassfrmMatriculaAlunoV2:Form{publicfrmMatriculaAlunoV2(){InitializeComponent();lblHoje.Text="Hoje é " + DateTime.Now.ToShortDateString(); //Fornece a data atual a label
        }

        private void frmMatriculaAlunoV2_Load(object sender, EventArgs e)
        {

        }

        private void btnIdentificar_Click(object sender, EventArgs e)
        {
            TimeSpan TsQuantidadeDias = DateTime.Now.Date - dtpDataNascimento.Value;
            int idade = (TsQuantidadeDias.Days / 365);


            if (txtNome.Text == String.Empty)
            {
                MessageBox.Show("Todos os dados solicitados devem ser informados", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                if (idade > 17)
                {
                    lblCategoria.Text = "Adulto";
                }
                else if (idade > 13)
                {
                    lblCategoria.Text = "Juvenil B";
                }
                else if (idade > 10)
                {
                    lblCategoria.Text = "Juvenil A";
                }
                else if (idade > 7)
                {
                    lblCategoria.Text = "Infantil B";
                }
                else if (idade >= 5)
                {
                    lblCategoria.Text = "Infantil A";
                }
                else
                {
                    lblCategoria.Text = "Não existe categoria";
                }
            }
        }

        private void lblHoje_Validating(object sender, CancelEventArgs e)
        {


            if (dtpDataNascimento.Value.Year < DateTime.Now.Date.Year)
            {
                MessageBox.Show("O ano do último aniversário deve ser superior ao do ANO DE NASCIMENTO", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                e.Cancel = true; // não deixa passar a validação até o usuário não arrumar
            }
        }
    }
}
  

Note, the Validating event is referenced in the Label of the current date and date of birth.

    
asked by anonymous 07.11.2017 / 18:42

1 answer

0

Ok, try this:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace _2.MatriculaAluno
    {
        public partial class frmMatriculaAlunoV2 : Form
        {
            public frmMatriculaAlunoV2()
            {
                InitializeComponent();
                lblHoje.Text = "Hoje é " + DateTime.Now.ToShortDateString(); //Fornece a data atual a label
            }

            private void frmMatriculaAlunoV2_Load(object sender, EventArgs e)
            {

            }

            private void btnIdentificar_Click(object sender, EventArgs e)
            {
                TimeSpan TsQuantidadeDias = DateTime.Now.Date - dtpDataNascimento.Value;
                int idade = (TsQuantidadeDias.Days / 365);


                if (txtNome.Text == String.Empty)
                {
                    MessageBox.Show("Todos os dados solicitados devem ser informados", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else if (dtpDataNascimento.Value.Year < DateTime.Now.Date.Year)
                {
                    MessageBox.Show("O ano do último aniversário deve ser superior ao do ANO DE NASCIMENTO", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    e.Cancel = true; // não deixa passar a validação até o usuário não arrumar
                }
                else
                {

                    if (idade > 17)
                    {
                        lblCategoria.Text = "Adulto";
                    }
                    else if (idade > 13)
                    {
                        lblCategoria.Text = "Juvenil B";
                    }
                    else if (idade > 10)
                    {
                        lblCategoria.Text = "Juvenil A";
                    }
                    else if (idade > 7)
                    {
                        lblCategoria.Text = "Infantil B";
                    }
                    else if (idade >= 5)
                    {
                        lblCategoria.Text = "Infantil A";
                    }
                    else
                    {
                        lblCategoria.Text = "Não existe categoria";
                    }
                }
            }

            private void lblHoje_Validating(object sender, CancelEventArgs e)
            {

            }
        }
    }
    
07.11.2017 / 19:07