Skip to main content Skip to footer

Spread Windows Forms and GcNumber Cell

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. gcnumcalc 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. gcnumctrl 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. GcNum 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. gcnumdisplayfields 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  

MESCIUS inc.

comments powered by Disqus