Number cells can be used to only allow number values in a cell. This saves time by requiring less validation. Spread for Windows Forms has two number cells. The original number cell supports fractions as well as a calculator or incremental side buttons. The GcNumber cell was added to the version 9 release and supports a drop-down calculator, side buttons, pop-up calculator, and display fields. The GcNumberCellType class that is used to create a GcNumber cell is part of the GrapeCity.Win.PluginInputMan assembly. The following information explains how to use a GcNumber cell. Select the side button to display the drop-down calculator as shown in the following image. Select OK to close the calculator and update the cell with the calculator value. Calculator The following code creates a default GcNumber cell. You can also use the designer to create cell types. C#
GrapeCity.Win.Spread.InputMan.CellType.GcNumberCellType ncell1 = new GrapeCity.Win.Spread.InputMan.CellType.GcNumberCellType();
fpSpread1.ActiveSheet.Cells[2, 1].CellType = ncell1;
VB
Dim ncell1 As New GrapeCity.Win.Spread.InputMan.CellType.GcNumberCellType()
FpSpread1.ActiveSheet.Cells(2, 1).CellType = ncell1
You can display the pop-up calculator using the Ctrl key and the add, subtract, multiply, or divide key on the number pad while the cell is in edit mode. This displays the edit box which allows you to calculate a value. Press Enter to finish the calculation. Pop-up Calculator You can use spin buttons, the mouse wheel, or up and down arrow keys to change the value. Use the SideButtons.Add method, SpinOnWheel property, or SpinOnKeys property to specify the options for changing the value. This example creates a GcNumber cell that allows you to use the up and down arrow keys to change the value. C#
GrapeCity.Win.Spread.InputMan.CellType.GcNumberCellType ncell1 = new GrapeCity.Win.Spread.InputMan.CellType.GcNumberCellType();
ncell1.Spin.AllowSpin = true;
ncell1.Spin.IncrementValue = 2;
ncell1.Spin.SpinMode = GrapeCity.Win.Spread.InputMan.CellType.NumberSpinMode.Value;
//Use up or down arrow keys to change the value
ncell1.Spin.SpinOnKeys = true;
fpSpread1.Sheets[0].Cells[1, 1].CellType = ncell1;
fpSpread1.ActiveSheet.Cells[1, 1].Value = 12.3189;
VB
Dim ncell1 = New GrapeCity.Win.Spread.InputMan.CellType.GcNumberCellType()
ncell1.Spin.AllowSpin = True
ncell1.Spin.IncrementValue = 2
ncell1.Spin.SpinMode = GrapeCity.Win.Spread.InputMan.CellType.NumberSpinMode.Value
'Use up or down arrow keys to change the value
ncell1.Spin.SpinOnKeys = True
FpSpread1.Sheets(0).Cells(1, 1).CellType = ncell1
FpSpread1.ActiveSheet.Cells(1, 1).Value = 12.3189
This example creates a GcNumber cell that allows you to use the mouse wheel to change the value. C#
GrapeCity.Win.Spread.InputMan.CellType.GcNumberCellType ncell1 = new GrapeCity.Win.Spread.InputMan.CellType.GcNumberCellType();
ncell1.Spin.AllowSpin = true;
ncell1.Spin.IncrementValue = 2;
//Put the edit cursor to the left of the digit, then use the mouse wheel
ncell1.Spin.SpinMode = GrapeCity.Win.Spread.InputMan.CellType.NumberSpinMode.Digits;
ncell1.Spin.SpinOnWheel = true;
fpSpread1.Sheets[0].Cells[1, 1].CellType = ncell1;
fpSpread1.ActiveSheet.Cells[1, 1].Value = 12.3189;
VB
Dim ncell1 As New GrapeCity.Win.Spread.InputMan.CellType.GcNumberCellType()
ncell1.Spin.AllowSpin = True
ncell1.Spin.IncrementValue = 2
'Put the edit cursor to the left of the digit, then use the mouse wheel
ncell1.Spin.SpinMode = GrapeCity.Win.Spread.InputMan.CellType.NumberSpinMode.Digits
ncell1.Spin.SpinOnWheel = True
FpSpread1.Sheets(0).Cells(1, 1).CellType = ncell1
FpSpread1.ActiveSheet.Cells(1, 1).Value = 12.3189
The following example creates side buttons for the GcNumber cell. Side Buttons C#
GrapeCity.Win.Spread.InputMan.CellType.SideButtonInfo testbutton = new GrapeCity.Win.Spread.InputMan.CellType.SideButtonInfo();
testbutton.Behavior = GrapeCity.Win.Spread.InputMan.CellType.SideButtonBehavior.SpinDown;
testbutton.BackColor = Color.Red;
testbutton.UseVisualStyleBackColor = false;
GrapeCity.Win.Spread.InputMan.CellType.SideButtonInfo testbutton1 = new GrapeCity.Win.Spread.InputMan.CellType.SideButtonInfo();
testbutton1.BackColor = Color.Green;
testbutton1.UseVisualStyleBackColor = false;
testbutton1.Behavior = GrapeCity.Win.Spread.InputMan.CellType.SideButtonBehavior.SpinUp;
GrapeCity.Win.Spread.InputMan.CellType.GcNumberCellType ncell1 = new GrapeCity.Win.Spread.InputMan.CellType.GcNumberCellType();
//Clears other buttons including the calculator button
ncell1.SideButtons.Clear();
ncell1.SideButtons.Add(testbutton);
ncell1.SideButtons.Add(testbutton1);
ncell1.Spin.AllowSpin = true;
ncell1.Spin.IncrementValue = 1;
ncell1.Spin.SpinMode = GrapeCity.Win.Spread.InputMan.CellType.NumberSpinMode.Value;
fpSpread1.Sheets[0].Cells[1, 1].CellType = ncell1;
fpSpread1.ActiveSheet.Cells[1, 1].Value = 12.31;
VB
Dim testbutton As New GrapeCity.Win.Spread.InputMan.CellType.SideButtonInfo()
testbutton.Behavior = GrapeCity.Win.Spread.InputMan.CellType.SideButtonBehavior.SpinDown
testbutton.BackColor = Color.Red
testbutton.UseVisualStyleBackColor = False
Dim testbutton1 As New GrapeCity.Win.Spread.InputMan.CellType.SideButtonInfo()
testbutton1.BackColor = Color.Green
testbutton1.UseVisualStyleBackColor = False
testbutton1.Behavior = GrapeCity.Win.Spread.InputMan.CellType.SideButtonBehavior.SpinUp
Dim ncell1 As New GrapeCity.Win.Spread.InputMan.CellType.GcNumberCellType()
'Clears other buttons including the calculator button
ncell1.SideButtons.Clear()
ncell1.SideButtons.Add(testbutton)
ncell1.SideButtons.Add(testbutton1)
ncell1.Spin.AllowSpin = True
ncell1.Spin.IncrementValue = 1
ncell1.Spin.SpinMode = GrapeCity.Win.Spread.InputMan.CellType.NumberSpinMode.Value
FpSpread1.Sheets(0).Cells(1, 1).CellType = ncell1
FpSpread1.ActiveSheet.Cells(1, 1).Value = 12.31
You can create display fields for the cell. Properties that apply to formatting or behavior are visible when the cell is not in edit mode. The NumberDisplayFieldInfo is an abstract base class for the following display field classes:
- NumberDecimalGeneralFormatDisplayFieldInfo
- NumberDecimalPartDisplayFieldInfo
- NumberDecimalSeparatorDisplayFieldInfo
- NumberIntegerPartDisplayFieldInfo
- NumberLiteralDisplayFieldInfo
- NumberMoneyPatternDisplayFieldInfo
- NumberSignDisplayFieldInfo
- NumberSystemFormatDisplayFieldInfo
The following code creates display fields for the GcNumber cell. Display Fields C#
GrapeCity.Win.Spread.InputMan.CellType.Fields.NumberDecimalPartDisplayFieldInfo ndp = new GrapeCity.Win.Spread.InputMan.CellType.Fields.NumberDecimalPartDisplayFieldInfo();
ndp.MaxDigits = 3;
ndp.BackColor = Color.Orange; //PaintByControl must be true for appearance properties
GrapeCity.Win.Spread.InputMan.CellType.Fields.NumberDecimalSeparatorDisplayFieldInfo ndecimal = new GrapeCity.Win.Spread.InputMan.CellType.Fields.NumberDecimalSeparatorDisplayFieldInfo();
ndecimal.DecimalSeparator = Convert.ToChar("A");
GrapeCity.Win.Spread.InputMan.CellType.Fields.NumberIntegerPartDisplayFieldInfo npart = new GrapeCity.Win.Spread.InputMan.CellType.Fields.NumberIntegerPartDisplayFieldInfo();
npart.MinDigits = 3;
npart.BackColor = Color.Bisque;
GrapeCity.Win.Spread.InputMan.CellType.GcNumberCellType ncell1 = new GrapeCity.Win.Spread.InputMan.CellType.GcNumberCellType();
ncell1.DropDownCalculator.FlatStyle = FlatStyle.Popup;
ncell1.DropDownCalculator.Font = new System.Drawing.Font("Comic Sans MS", 10);
ncell1.PaintByControl = true;
ncell1.DisplayFields.Add(ndp);
ncell1.DisplayFields.Add(ndecimal);
ncell1.DisplayFields.Add(npart);
fpSpread1.Sheets[0].Cells[1, 1].CellType = ncell1;
fpSpread1.ActiveSheet.Cells[1, 1].Value = 12.3189;
VB
Dim ndp As New GrapeCity.Win.Spread.InputMan.CellType.Fields.NumberDecimalPartDisplayFieldInfo()
ndp.MaxDigits = 3
ndp.BackColor = Color.Orange 'PaintByControl must be true for appearance properties
Dim ndecimal As New GrapeCity.Win.Spread.InputMan.CellType.Fields.NumberDecimalSeparatorDisplayFieldInfo()
ndecimal.DecimalSeparator = Convert.ToChar("A")
Dim npart As New GrapeCity.Win.Spread.InputMan.CellType.Fields.NumberIntegerPartDisplayFieldInfo()
npart.MinDigits = 3
npart.BackColor = Color.Bisque
Dim ncell1 As New GrapeCity.Win.Spread.InputMan.CellType.GcNumberCellType()
ncell1.DropDownCalculator.FlatStyle = FlatStyle.Popup
ncell1.DropDownCalculator.Font = New System.Drawing.Font("Comic Sans MS", 10)
ncell1.PaintByControl = True
ncell1.DisplayFields.Add(ndp)
ncell1.DisplayFields.Add(ndecimal)
ncell1.DisplayFields.Add(npart)
FpSpread1.ActiveSheet.Cells(1, 1).CellType = ncell1
FpSpread1.ActiveSheet.Cells(1, 1).Value = 12.3189