All docs
V20.1
20.1
19.2
19.1
The page you are viewing does not exist in version 19.1. This link will take you to the root page.
18.2
The page you are viewing does not exist in version 18.2. This link will take you to the root page.
18.1
The page you are viewing does not exist in version 18.1. This link will take you to the root page.
17.2
The page you are viewing does not exist in version 17.2. This link will take you to the root page.

GridView.ClipboardRowCopying Event

Fires before a data row, group row, column headers, or band headers are copied to the clipboard. Allows you to apply a format, change copied data, or skip a data row or header.

Namespace: DevExpress.XtraGrid.Views.Grid

Assembly: DevExpress.XtraGrid.v20.1.dll

Declaration

[DXCategory("Action")]
public event ClipboardRowCopyingEventHandler ClipboardRowCopying
<DXCategory("Action")>
Public Event ClipboardRowCopying As ClipboardRowCopyingEventHandler

Event Data

The ClipboardRowCopying event's data class is ClipboardRowCopyingEventArgs. The following properties provide information specific to this event:

Property Description
Cancel Gets or sets whether to cancel copying the processed row to the clipboard.
Headers Provides access to the collection of cells in the processed column header, or band header.
Type Gets the type of the processed row.
Values Provides access to the collection of cells in the processed data row, group row, or summaries in the group row.

Remarks

If the ClipboardMode option is set to Formatted, the ClipboardRowCopying event fires before a data row, group row, group summary, column headers, or band headers are copied to the clipboard. The event allows you to change the copied value, customize the cell appearance, or skip certain rows.

NOTE

Run the XtraGrid demo to see how to copy and paste data.

Row Types

The Type event argument returns the processed row type:

  • Row — a data row.
  • ColumnHeader — column headers.

    Headers are copied to the clipboard if the CopyColumnHeaders option is enabled.

  • BandHeader — band headers.

  • Group — a group row.

    If the group row contains group summaries, use the GroupSummary type to access the group row with summaries.

  • GroupSummary — a group row with summaries.

    Group row contains summaries if the AlignGroupSummaryInGroupRow option is enabled.

To prevent the processed row from being copied, set the Cancel event argument to true.

Cells

Depending on the row type, use the following collections to access the processed cells:

  • Values — provides access to a collection of cells in data rows, group rows and group rows with summaries.
  • Headers — provides access to a collection of cells in column headers and band headers.

You can index cells by column/band objects or by field names/band captions. The returned object contains view information about the cell. You can specify the following properties:

  • Column — gets a GridColumn, GridBand, or BandedGridColumn object that specifies the processed column.
  • Value — gets or sets an object that specifies the cell's value.
  • BackColor, ForeColor — gets or sets the background and foreground colors for the cell.
  • Font — gets or sets the font of the text displayed in the cell.
  • BorderBottom, BorderLeft, BorderRight, BorderTop — gets or sets BorderInfo structures that allow you to specify the following properties:

    • BorderStyle — gets or sets the border's style (dash, dot, etc.).

      Note that rows are processed in the order they are arranged in the control. As a result, the currently processed row's top border overrides the previous row's bottom border.

    • Color — gets or sets border's color.

    NOTE

    The control uses the Excel Export Library to copy data to the clipboard. The specified values are assigned to an XlBorder object's corresponding properties. For example, the bottom border's style and color are assigned to the BottomLineStyle and BottomColor properties.

Extension Methods

Event arguments also provide the following extension methods that allow you to specify an action that accepts the processed row as a parameter:

  • WithRow — allows you to specify a method that accepts the collection of cell values as a parameter.
  • WithGroup — allows you to specify a method that accepts a group row value as a parameter.
  • WithGroupSummary — allows you to specify a method that accepts the collection of summary values in a group row as a parameter.
  • WithColumnHeader — allows you to specify a method that accepts the collection of column headers as a parameter.
  • WithBandHeaders — allows you to specify a method that accepts the collection of band headers as a parameter.
NOTE

These extension methods are declared in the DevExpress.XtraGrid.Views.Printing namespace. Make sure you referenced this namespace in code.

Examples

The code below shows how to change a column header's caption and appearance.

using DevExpress.XtraExport.Helpers;
using DevExpress.XtraGrid.Views.Grid;

private void gridView1_ClipboardRowCopying(object sender, ClipboardRowCopyingEventArgs e) {
    switch (e.Type) {
        case ClipboardInfoType.ColumnHeader:
            var columnHead = e.Headers[colSales];
            //var columnHead1 = e.Headers["Sales"];
            columnHead.BackColor = Color.Red;
            columnHead.ForeColor = Color.White;
            columnHead.Value = "SALES";
            columnHead.BorderLeft = new ClipboardCellBorderInfo(Color.BlanchedAlmond, DevExpress.XtraExport.Helpers.BorderStyle.DashDotDot);
            columnHead.BorderTop = new ClipboardCellBorderInfo(Color.Crimson, DevExpress.XtraExport.Helpers.BorderStyle.DashDotDot);
            columnHead.BorderRight = new ClipboardCellBorderInfo(Color.CornflowerBlue, DevExpress.XtraExport.Helpers.BorderStyle.Dotted);
            columnHead.BorderBottom = new ClipboardCellBorderInfo(Color.Red, DevExpress.XtraExport.Helpers.BorderStyle.DashDot);
            break;
        case ClipboardInfoType.Group:
            e.Cancel = true;
            break;
        case ClipboardInfoType.Row:
            //var regionCellInfo = e.Values[colState];
            var regionCellInfo1 = e.Values["State"];
            if (regionCellInfo1.Value.Equals("California"))
                e.Cancel = true;
            break;
    }
}

The code below shows how to use extension methods to access the processed cell values, column and band headers, groups, and group summaries.

using DevExpress.XtraGrid.Views.Printing;
using DevExpress.XtraGrid.Views.Grid;

private void gridView1_ClipboardRowCopying(object sender, ClipboardRowCopyingEventArgs e) {
    e.WithRow(dataRowValues => {
        ClipboardValueInfo austriaValueInfo = dataRowValues.FirstOrDefault((valueInfo) => valueInfo.Value as string == "Austria");
        if (austriaValueInfo != null)
            austriaValueInfo.BackColor = Color.Red;
    });
    e.WithGroup(groupRowValue => {
        if (groupRowValue.Column == colState)
        {
            groupRowValue.Value = "CLASSIFIED";
        }
    });
    e.WithGroupSummary(groupRowSummaryValues => {
        ClipboardValueInfo stateColumnHeaderInfo = groupRowSummaryValues.FirstOrDefault((columnHeaderInfo) => columnHeaderInfo.Column == colState);
        if (stateColumnHeaderInfo != null)
            stateColumnHeaderInfo.ForeColor = Color.Black;
    });
    e.WithColumnHeader(columnHeaderRowValues => {
        ClipboardHeaderInfo stateColumnHeaderInfo = columnHeaderRowValues.FirstOrDefault((columnHeaderInfo) => columnHeaderInfo.Column == colState);
        if (stateColumnHeaderInfo != null)
            stateColumnHeaderInfo.BackColor = Color.Red;
    });
}
See Also