The requested page is not available for the requested platform. You are viewing the content for Default platform.

XRTableCellCollection.Add(XRTableCell) Method

Appends the specified XRTableCell to the table row's collection of cells.

Namespace: DevExpress.XtraReports.UI

Assembly: DevExpress.XtraReports.v18.2.dll


public int Add(
    XRTableCell cell
Public Function Add(
    cell As XRTableCell
) As Integer


Name Type Description
cell XRTableCell

An XRTableCell object to append to the collection.


Type Description

An integer value specifying the index of the new element in the collection. This method adds the XRTableCell object to the end of the collection.


This method is intended to be used instead of the XRControlCollection.Add when a cell is added to a table row.


If you're creating an XRTable object at runtime and manually add XRTableRow and XRTableCell objects to it, it is always required to enclose this code inside the XRTable.BeginInit and XRTable.EndInit method calls. Also, the final size of the table doesn't consider the size of table rows and table cells being added to it. So, you need to manually set the table size and width before calling the XRTable.EndInit method.


This example demonstrates how to create an XRTable at runtime.

Please note that it is always required to call the XRTable.BeginInit and XRTable.EndInit methods if you modify XRTable.Rows and XRTableRow.Cells collections at runtime.

using System.Drawing;
using System.Drawing.Printing;
using DevExpress.XtraReports.UI;
// ...

private void XtraReport1_BeforePrint(object sender, PrintEventArgs e) {

public XRTable CreateXRTable() {
    int cellsInRow = 3;
    int rowsCount = 3;
    float rowHeight = 25f;

    XRTable table = new XRTable();
    table.Borders = DevExpress.XtraPrinting.BorderSide.All;

    for (int i = 0; i < rowsCount; i++) {
        XRTableRow row = new XRTableRow();
        row.HeightF = rowHeight;
        for (int j = 0; j < cellsInRow; j++) {
            XRTableCell cell = new XRTableCell();

    table.BeforePrint += new PrintEventHandler(table_BeforePrint);
    return table;

// The following code makes the table span to the entire page width.
void table_BeforePrint(object sender, PrintEventArgs e) {
    XRTable table = ((XRTable)sender);
    table.LocationF = new DevExpress.Utils.PointFloat(0F, 0F);
    table.WidthF = this.PageWidth - this.Margins.Left - this.Margins.Right;
See Also