Accepting input from the user is always a big challenge in software development. I faced many cases where the user needs to be controlled by the application to provide proper input. So, I designed some controls to provide that feature. But I felt there are some cases where the more than just controlling the input is required. For example, if user needs to input some amount, then the user might expect a calculator to do initial calculation for a particular field. In that case, the user uses his/her own preferred calculator to do the initial calculation. Some of them use their brain, some use a physical calculator, and some use the calculator available with Windows. All of these are out of the scope of the application that the user is using. So, I always felt the need to develop a calculator control, which will provide a very similar interface as the standard calculator found in the market. That was the motivation to develop this calculator box. This calculator box can be used instead of using a restricted text box control.
CalculatorBox is a user control, which provides a specific feature to provide numerical input, especially for financial information. This control can be used as a text box control. It is more like a combo box control. It has two modes. One is the normal mode where the user can provide input for decimal numbers. Whenever the user wants to do some mathematical operations, the user can click on the arrow at the left, like in a combo box. It will display a calculator at the best possible place. The user can click on the calculator buttons, or use the keyboard to do the calculations. In text mode, if the user clicks any operation key (Add, Subtract, Multiply, or Divide), then it will automatically switch to calculator mode with the button pressed. If the calculator loses its focus, then automatically it will switch to text mode and the calculator will disappear.
If the user made some mistake in the calculation and wants a previous value, then the user can press the Esc button and the control will reset to the previous value.
This control has two properties: the
Text property will provide whatever is available in the text box, and the
Value property will provide the decimal value.
1.1 New Support
I use the current culture information from the
CultureInfo class to decide the character for the the decimal point. The decimal point is used for display as well as to accept input from the user. For example, the Spanish language uses coma as a decimal separator. So, if the user sets the current culture as Spanish, then the calculator control will automatically use the coma as the decimal separator.