Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

[C#] Validation class for events?

Status
Not open for further replies.

gicio

Programmer
Jun 18, 2002
39
DE
Hi,

I develop an application that have 20 windows forms with many TextBoxes.
All TextBoxes have the same validation...
I write in all classes the same validation like that:



Code:
		//if the user press a key down at txtDisplacement we check which one was pressed down
		#region KeyDownInTxtDisplacement code
		private void KeyDownInTxtDisplacement(object sender, System.Windows.Forms.KeyEventArgs e)
		{
			CheckWhichKeyDown(e);
		}
		#endregion



		//if the user press a key down at txtModel we check which one was pressed down
		#region KeyDownInTxtModel code
		private void KeyDownInTxtModel(object sender, System.Windows.Forms.KeyEventArgs e)
		{
			CheckWhichKeyDown(e);
		}
		#endregion



		//we check which key is pressed
		//if key Enter or Return or Tab is pressed
		//we go throw DoWhenOneTextBoxIsMarkedRed()
		#region CheckWhichKeyDown code
		private void CheckWhichKeyDown(System.Windows.Forms.KeyEventArgs e)
		{
			if(e.KeyCode==Keys.Enter || e.KeyCode==Keys.Return || e.KeyCode==Keys.Tab)
			{
				ValidateThis();
			}		
		}
		#endregion



		//when special key is press we enable the button
		#region ValidateThis code
		private void ValidateThis()
		{
			cmdAddToDataBase.Enabled = true;
		}
		#endregion




CheckWhichKeyDown and ValidateThis should be in one validation class.
How I can write a validation class that validate ALL TextBoxes from all classes.
Any ideas?
Or do you know some sample validation classes available on www?


gicio
 
Why not subclass the textbox control class? That way you can create your own control that validates automatically.

Chip H.


 
Hi,

I write a new class... like this:

Code:
using System;
using System.Windows.Forms;
using System.Windows.Forms.ComponentModel;

namespace CarTrade
{
	/// <summary>
	/// Summary description for TestTextBox.
	/// </summary>
	public class TestTextBox : System.Windows.Forms.TextBox
	{
		private bool booOnlyNumericCharsAllowed;
		private bool booSpecialKeyIsPress;
		
		public TestTextBox.
		{
	
		}

		//---------------------------------------------------------------
		//---------------------------PROPERTIES--------------------------
		//---------------------------------------------------------------

		//we allowed in the TestTextBox only numeric chars
		//when the user set the proparty OnlyOnlyNumericCharsAllowed
		//to true
		internal bool OnlyNumericCharsAllowed
		{
			get
			{
				//return the value how OnlyOnlyNumericCharsAllowed
				//is set
				return booOnlyNumericCharsAllowed;
			}
			set
			{
				if(value)
				{
					this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.DoWhenKeyPress);
				}

				booOnlyNumericCharsAllowed = value;
			}
		}

		internal bool SpecialKeyIsPress
		{
			get
			{
				return booSpecialKeyIsPress;
			}
			set
			{
				if(value)
				{
					this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.CheckIfSpecialKeysArePressed);
				}

				booSpecialKeyIsPress = value;
			}
		}

		private void CheckIfSpecialKeysArePressed(object sender, System.Windows.Forms.KeyEventArgs e)
		{
			bool booEnter = e.KeyCode == Keys.Enter;
			bool booReturn = e.KeyCode==Keys.Return;
			bool booTab = e.KeyCode==Keys.Tab;

			if(booEnter || booReturn || booTab)
			{
		
			}
		}

		private void DoWhenKeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
		{
			if((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 )
			{
				e.Handled = true;
			}

			if(Text.Length == 0 && e.KeyChar == 48)
			{
				e.Handled = true;
			}
		}

	}
}



Any coments are welcome!


gicio
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top