How to validate a textbox for an email id?

Jan 18 2008 6:58 AM

I have the following program (C# VS 2005) for validating an email id entered in a textbox.

It works fine.

 

Namespace used -

using System.Text.RegularExpressions;

 At present I have written the functionality inside  textBox1_Validating event as shown below and when I click button1(my form contains  button control called button1), it is giving me the perfect output.

 

private void textBox1_Validating(object sender, CancelEventArgs e)

        {

            System.Text.RegularExpressions.Regex rEMail = new System.Text.RegularExpressions.Regex(@"^[a-zA-Z][\w\.-]{2,28}[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$");

            if (textBox1.Text.Length > 0)

            {

                if (!rEMail.IsMatch(textBox1.Text))

                {

                    MessageBox.Show("E-Mail expected", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    textBox1.SelectAll();

                    e.Cancel = true;

                }

            }

        }

When I clicked button1, it gave me the required output.

Note that I have restricted the no of characters upto @symbol like >=3 and <=30

 

 

But sir, I want some  slight change.

 

1.        I again dragged and dropped  button2, button3 into my form.

Now if I click either button1 or button2 or button3 it is showing the massage box. This should be restricted. ie the error message should be shown only on the click of button1(ie my save button) and not on the click of other buttons.

 

2.        after entering  the mail id in the textbox and if I press the enter key, then it should show me the same  error message box

 

3.        if the textbox is empty and if I press enter key or button1(my save button)then also  it should  prompt me to enter an email id by showing the same message box.

 

Please help me telling what pieces of code I must write inside the following event handlers

1. private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

   {

   }       

  

2. private void textBox1_Validating(object sender, CancelEventArgs e)

   {

           

   }

 

3. private void button1_Click(object sender, EventArgs e)

   {

   }

 

I am not sure whether all the above three event handlers are required , what all pieces of code I must write in each event handler or any additional event handlers are required(if so, what code I must write inside them ) to achieve the above mentioned functionality

Please help me.

Note:-If there is a more efficient program than mine, then help me with that.

Thanks and Regards,

-jm


Answers (2)