Articles in this section
Category / Section

How to validate the cell while pasting it in a grid in WinForms GridControl?

2 mins read

Validate the cell while paste in grid

In WinForms GridControl, you can validate the cell during the pasting in a grid using the grid.Model.PasteCellText event and when it is invalid, set e.Cancel = true. This event is not triggered when the current cell is in Edit mode. So the ActivateCurrentCellBehavior is changed to DblClickOnCell.

The following code example illustrates validating cell during pasting.

C#

this.gridControl1.Model.PasteCellText += Model_PasteCellText;
this.gridControl1.ActivateCurrentCellBehavior = GridCellActivateAction.DblClickOnCell;
void Model_PasteCellText(object sender, GridPasteCellTextEventArgs e)
 {
    if (e.ColIndex == 2)
    {
       Boolean intOK = true;
       foreach (char c in e.Text)
       {
          if (!Char.IsDigit(c))
          {
             intOK = false;
             MessageBox.Show("Only Digits are allowed in this field");
             break;
          }
     }
     if (!intOK)
     {
        e.Cancel = true;
     }
  }
}

VB

Me.gridControl1.Model.CutPaste.ClipboardFlags = Me.gridControl1.Model.CutPaste.ClipboardFlags And Not GridDragDropFlags.Styles
AddHandler Me.gridControl1.Model.PasteCellText, AddressOf Model_PasteCellText
Me.gridControl1.ActivateCurrentCellBehavior = GridCellActivateAction.DblClickOnCell
Private Sub Model_PasteCellText(ByVal sender As Object, ByVal e As GridPasteCellTextEventArgs)
    If e.ColIndex = 2 Then
 Dim intOK As Boolean = True
 For Each c As Char In e.Text
     If Not Char.IsDigit(c) Then
  intOK = False
  MessageBox.Show("Only Digits are allowed in this field")
  Exit For
     End If
 Next c
 If Not intOK Then
     e.Cancel = True
 End If
     End If
End Sub

 

Note:

When you are pasting text, for example, this is always the case in a GridDataBoundGrid or in the case of a GridControl when you copy from another object like an Excel spreadsheet, then you can use the grid.Model.PasteCellText event to validate the text that is being pasted. Otherwise when you are copying from a GridControl and pasting it in a GridControl, then by default, the style objects are copied and pasted, and PasteCellText is not raised. In this case, you can either turn off support for copying styles, allowing only text to be pasted and PasteCellText to be hit, or you can handle the grid.ClipboardPaste. To turn off style, copy and paste support in a gridcontrol, turning off this flag.

C#

//To Copy text alone
this.gridControl1.Model.CutPaste.ClipboardFlags &= ~GridDragDropFlags.Styles;

VB

‘To Copy text alone
Me.gridControl1.Model.CutPaste.ClipboardFlags = Me.gridControl1.Model.CutPaste.ClipboardFlags And Not GridDragDropFlags.Styles

Sample: https://www.syncfusion.com/downloads/support/directtrac/general/WF-15701-How_to_validate_cell_during_the_pasting_on_grid-387267445.zip

 

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied