windowsforms-devexpress-dot-xtrapivotgrid-dot-pivotgridcells-45067dae.md
Gets or sets the coordinates of the selected cells.
Namespace : DevExpress.XtraPivotGrid
Assembly : DevExpress.XtraPivotGrid.v25.2.dll
NuGet Package : DevExpress.Win.PivotGrid
public Rectangle Selection { get; set; }
Public Property Selection As Rectangle
| Type | Description |
|---|---|
| Rectangle |
A Rectangle object which contains the coordinates of the selected cells.
|
The PivotGrid control allows its cells to be selected. The Left and Top members of the Selection property identify the column index and row index of the left-topmost selected cell. The Width and Height members specify the number of selected columns and rows respectively.
You can use the Selection property to modify the cell selection.
To get information on any cell (including the selected ones) use the PivotGridCells.GetCellInfo method.
The following example demonstrates how to manually copy the display text of the control’s selected cells to the Clipboard. The selected cells are identified by the PivotGridCells.Selection property.
You can also use the PivotGridCells.CopySelectionToClipboard method to copy the selected cells to the Clipboard.
using DevExpress.XtraPivotGrid;
const string CellDelimiter = "\t";
const string LineDelimiter = "\r\n";
void CopyToClipboard(Pivot Grid Control pivotGrid) {
PivotGridCells cells = pivotGrid.Cells;
// Get the coordinates of the selected cells.
Rectangle cellSelection = cells.Selection;
string result = "";
// Get the index of the bottommost selected row.
int maxRow = cellSelection.Y + cellSelection.Height - 1;
// Get the index of the rightmost selected column.
int maxColumn = cellSelection.X + cellSelection.Width - 1;
// Iterate through the selected cells.
for(int rowIndex = cellSelection.Y; rowIndex <= maxRow; rowIndex++) {
for(int colIndex = cellSelection.X; colIndex <= maxColumn; colIndex++) {
// Get the current cell's display text.
result += cells.GetCellInfo(colIndex, rowIndex).DisplayText;
if(colIndex < maxColumn) result += CellDelimiter;
}
if(rowIndex < maxRow) result += LineDelimiter;
}
// Copy the resulting text to the clipboard.
Clipboard.SetDataObject(result);
}
Imports DevExpress.XtraPivotGrid
Const CellDelimiter As String = vbTab
Const LineDelimiter As String = vbCrLf
Sub CopyToClipboard(ByVal PivotGrid As PivotGridControl)
Dim cells As PivotGridCells = PivotGrid.Cells
' Get the coordinates of the selected cells.
Dim cellSelection As Rectangle = cells.Selection
Dim result As String = ""
' Get the index of the bottommost selected row.
Dim maxRow As Integer = cellSelection.Y + cellSelection.Height - 1
' Get the index of the rightmost selected column.
Dim maxColumn As Integer = cellSelection.X + cellSelection.Width - 1
' Iterate through the selected cells.
Dim rowIndex, colIndex As Integer
For rowIndex = cellSelection.Y To maxRow
For colIndex = cellSelection.X To maxColumn
' Get the current cell's display text.
result += cells.GetCellInfo(colIndex, rowIndex).DisplayText
If (colIndex < maxColumn) Then result += CellDelimiter
Next
If (rowIndex < maxRow) Then result += LineDelimiter
Next
' Copy the resulting text to the clipboard.
Clipboard.SetDataObject(result)
End Sub
See Also