Using the C1FlexGrid Control > Editing Cells > Custom Editors |
The built-in editors provide a lot of flexibility and power, but in some cases you may want to use external controls as specialized editors. For example, you may want to use the C1NumericInput control that provides a drop-down calculator for entering numbers, or an editor for selecting from multi-column lists, or a specialized control that you wrote to edit your business objects.
Any control that derives from the base Control class can be used as a basic grid editor. Controls that implement the IC1EmbeddedEditor interface (defined in C1.Common.dll) can provide better integration with the grid and more advanced features. For details on the IC1EmbeddedEditor interface, see the Editor property.
To use a control as a custom editor, all you have to do is associate an instance of the control with a grid column or a style using its Editor property. You can do this in the designer (using the Column Editor) or in code. After that, the control will be automatically used by the grid.
To define custom editors at design time, add an instance of the editor control to the form, then select Designer from the C1FlexGrid Tasks menu to open the C1FlexGrid Column Editor. Select the columns that should use the custom editor and set their Editor properties to the name of the new editor control.
For example, to use a NumericUpDown control as a grid editor, follow these steps:
Run the project and edit some values in the first column. Notice how the grid positions and initializes the NumericUpDown control so you can edit cell values. When you are done editing a cell, click a different cell or press the TAB key to move to the next one. Notice how the new value is applied to the cell.
You can also assign custom editors to the grid using code:
To write code in Visual Basic
Visual Basic |
Copy Code
|
---|---|
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Create the custom editor. Dim editor as New NumericUpDown() editor.BorderStyle = BorderStyle.None ' Assign the custom editor to the grid. _flex.Cols(1).Editor = editor End Sub |
To write code in C#
C# |
Copy Code
|
---|---|
private void Form1_Load(object sender, System.EventArgs e) { // Create the custom editor. NumericUpDown editor = new NumericUpDown(); editor.BorderStyle = BorderStyle.None; // Assign the custom editor to the grid. _flex.Cols[1].Editor = editor; } |