Numeric Textbox-Custom Control

Here we will see a Numeric Textbox Custom Control which accept only numeric input.


Introduction:

As much as we know about the Textbox control in which we can enter any type of value as (Numeric type , Char type or any special character) . Here we are going to make a Numeric Textbox which will accept only numeric values; if there are any values except numeric. it will not be entered into the Textbox. Typically, you'll create your control as either as a Class Library Project (for components) or a Windows Control Library (for custom controls).

Whenever we are designing a custom control or component, you could add the control or component class directly to your application project. However, this approach prevents you from reusing your class in multiple applications. A better, more component-based approach is to create a separate project for your custom control or component. You can then use it in any other project by adding a reference to the compiled DLL assembly. This separate control or component project is a library. Here we are providing some steps to create a numeric Textbox Component or control.

Step 1: In this step we have to take a Library Project named as Custom Control as shown in figure given below.

          step_1.gif

Step 2: Now we are going to add a Custom Control into the Library Project.

  • Right click on project name as Custom Control and add a Custom control and give any name.
  • After adding the custom control it will show a gray window which will looks like as

         Add_Custom_Control.gif

Step 3: After adding Custom Control it looks like as.

         after_adding_Cust_cont.gif

Step 4: Now open the class1.cs file and write the code given below.

Code :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Custom_control1
{
 public class NumericTextBox : TextBox
  {
    protected override void OnKeyPress(KeyPressEventArgs e)
      {
       // Ignore all non-control and non-numeric key presses.
       if(!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
         {
           e.Handled = true;
         }
       //  to Call the implementation in the base TextBox class,
       // which raises the KeyPress event.
       base.OnKeyPress(e);
    }
  }
}

Code Description: In this code we have to make a class name as Numeric Textbox which inherit the Textbox class and there is a event method name as On Key Press() which is protected which is a key press event on key pressing from the keyboard it will raise an event and check the control value. If key pressing with any non-numeric key or any character digit will not entered into the Textbox. It will accept only numeric value.

Step 5: Now Build the solution of the class library file

Step 6: Now we are going to add the library project into the window form application.

  • Firstly open a window form application
  • Right click on Solution Explorer.
  • Add a new Project named as Custom Control it looks like figure given below.

         addding_both_application.gif

Step 7: Now add some necessary References add a windows form reference to the project Custom Control.

Step 8: Now add the Custom Control.dll reference to the window application and build the solution. You see that control will appear into the Custom component Toolbox.

            after_step_5.gif

Step 9: Now to add a component as a control to the toolbox now follow the step

  • Go to Toolbox.
  • Right Click on any Control.
  • And Choose Item.
  • And select the .NET Framework Component.
  • Choose or mark the click on Component name as NumericTextBox1.
  • Figure shows how it looks when we will open and add it.

    after_step_8.gif

Step 10: Further we are going to use our custom Control so we have to drag and drop it on windows form:

        after_step_9.gif

Step 11: Now we are going to run the application it will always take numeric value

Output Window:

         Output.gif