Skip to main content

SpreadsheetControl.ColumnWidthChanged Event

Occurs after the column width was changed.

Namespace: DevExpress.Xpf.Spreadsheet

Assembly: DevExpress.Xpf.Spreadsheet.v24.1.dll

NuGet Package: DevExpress.Wpf.Spreadsheet

Declaration

public event ColumnWidthChangedEventHandler ColumnWidthChanged

Event Data

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

Property Description
Index Returns the index of the column whose width was changed.

Remarks

The ColumnWidthChanged event occurs in the following cases:

See how to specify the row height or column width.

The example below shows how to use the SpreadsheetControl.ColumnWidthChanged and SpreadsheetControl.RowHeightChanged events to keep a picture in the center of the destination cell when a user changes the cell’s width or height.

Spreadsheet_ResizeColumnRowEvents

public Form1()
{
    InitializeComponent();
    IWorkbook workbook = spreadsheetControl.Document;
    Worksheet worksheet = workbook.Worksheets.ActiveWorksheet;

    // Add a picture to cell B2.
    Cell destCell = worksheet.Cells["B2"];
    Picture picture = worksheet.Pictures.AddPicture("DxLogo.png", destCell);
    // Specify the cell width and height.
    double cellWidth = destCell.ColumnWidth = picture.Width + 150;
    double cellHeight = destCell.RowHeight = picture.Height + 50;

    // Center the picture in the cell.
    double columnOffset = (destCell.ColumnWidth - picture.Width) / 2;
    double rowOffset = (destCell.RowHeight - picture.Height) / 2;
    picture.Move((float)rowOffset, (float)columnOffset);

    spreadsheetControl.ColumnWidthChanged += (s, e) =>
    {
        if (e.Index == destCell.ColumnIndex)
        {
            // Move the picture to keep it in the center of the cell.
            columnOffset = (destCell.ColumnWidth - cellWidth) / 2;
            picture.Left += (float)columnOffset;
            cellWidth = destCell.ColumnWidth;
        }
    };

    spreadsheetControl.RowHeightChanged += (s, e) =>
    {
        if (e.Index == destCell.RowIndex)
        {
            // Move the picture to keep it in the center of the cell.
            rowOffset = (destCell.RowHeight - cellHeight) / 2;
            picture.Top += (float)rowOffset;
            cellHeight = destCell.RowHeight;
        }
    };
}
See Also