Skip to main content

DevExpress v24.1 Update — Your Feedback Matters

Our What's New in v24.1 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

XRCharacterComb Class

A Character Comb control that displays text so that each character is printed in an individual cell.

Namespace: DevExpress.XtraReports.UI

Assembly: DevExpress.XtraReports.v24.1.dll

NuGet Package: DevExpress.Reporting.Core

#Declaration

[DefaultBindableProperty("Text")]
public class XRCharacterComb :
    XRLabel

#Remarks

The XRCharacterComb control displays text so that each character is printed in an individual cell.

cellular-label-report-control

To add this control to the report, drag the XRCharacterComb item from the DX:24.1: Report Controls Toolbox tab and drop it onto the report.

drop-control-cellular-label-toolbox

The number of cells displayed by the control in Print Preview depends on the CanShrink and AutoWidth settings.

  • If both these properties are enabled, the number of cells corresponds to the number of characters in the control’s text.
  • Otherwise, the number of cells corresponds to the specified cell size and the control size.

See the Content Layout and Position section to learn more on using these properties.

You can also adjust the character comb’s size to match its characters at design time by right-clicking the control and using the Fit Bounds To Text command in the context menu:

  • If the XRControl.WordWrap option is enabled, the command keeps control content displayed in multiple lines. It decreases the control’s height and adjusts the width to fit this content.

    vs-rd-character-comb-fit-bounds-to-text

  • If the XRControl.WordWrap option is disabled, the command adjusts the control’s height and width to completely display the control’s content in a single line. As a result, the number of cells corresponds to the number of characters.

    vs-rd-character-comb-fit-bounds-to-text-wordwrap-disabled

When exporting this control to third-party formats, consider the following

  • When a report is exported to an XLS or XLSX file, the cells of the Character Comb correspond to the cells of a resulting Excel sheet.
  • When a report is exported to a CSV (or TXT) file, the content of individual cells is separated (or spaced) by a specified TextExportOptionsBase.Separator character.

In most aspects, the Character Comb is similar to the XRLabel control from which it inherits most of its properties and its basic behavior. For general information about binding these controls to data and display summary function results, see the following topic: Label.

#Main Options

The following properties are specific to the XRCharacterComb control.

  • XRCharacterComb.CellVerticalSpacing and XRCharacterComb.CellHorizontalSpacing

    Specify the spacing between adjacent cells (measured in report units). These values do not depend on the specified border width of a control.

    The following image illustrates a Character Comb with CellVerticalSpacing set to 15 and CellHorizontalSpacing set to 5.

    cellular-label-spacing

    The area between cells is painted using the background color of the control’s parent container (the control’s XRControl.BackColor property is ignored for this area). In the following image, the control is assigned a gray background color, and the report’s background color is white.

    cellular-label-background

    The XRCharacterComb.Padding property is hidden and has no effect upon the Character Comb control. When applying a style to a Character Comb, the style’s XRControlStyle.Padding property is ignored.

  • XRControl.BorderWidth

    Specifies the width of cell borders in pixels, as a floating point value.

    When the cell spacing is set to zero, the borders of adjacent cells are merged (i.e., the actual border width is not doubled).

    The following images illustrate how cell spacing affects the BorderWidth property behavior.

    Cell Spacing = 0 Cell Spacing = 1
    cellular-label-border cellular-label-border-cell-spacing

    When the control’s content is to be printed on multiple pages, a page break horizontally splits the cell border based on the cell spacing setting, as shown below.

    Cell Spacing = 0 Cell Spacing > 0
    cellular-label-page-break-no-padding cellular-label-page-break-padding

    Note

    The XRCharacterComb.BorderDashStyle property of the Character Comb control does not currently support the BorderDashStyle.Double setting.

  • XRCharacterComb.CellSizeMode

    Specifies whether or not the cell size should depend on the current font size of a control. The following cell size modes are supported.

#Content Layout and Position

This section describes the XRCharacterComb properties that affect the control’s position on a page and content layout.

The following image illustrates the behavior of the XRLabel.AutoWidth property that specifies whether or not the width of a control depends on its text.

AutoWidth = true AutoWidth = false
cellular-label-auto-width-true cellular-label-auto-width-false

The following image illustrates the behavior of the XRLabel.CanShrink property that specifies whether or not the height of a control depends on its text.

CanShrink = true CanShrink = false
cellular-label-can-shrink cellular-label-auto-width-false

The XRCharacterComb.TextAlignment property specifies the alignment of text within a control.

TextAlignment = TopLeft TextAlignment = MiddleCenter TextAlignment = BottomRight
cellular-label-alignment-left cellular-label-alignment-center cellular-label-alignment-right

#Example

This example illustrates how to create a Character Comb and specify its main options in code.

using DevExpress.XtraPrinting;
using DevExpress.XtraReports.UI;
// ...

public XRCharacterComb CreateCharacterComb() {
    // Create a Character Comb instance.
    XRCharacterComb characterComb = new XRCharacterComb();

    // Make every cell have borders on each side.
    characterComb.Borders = BorderSide.All;

    // Specify the spacing between cells (measured in report units).        
    characterComb.CellHorizontalSpacing = 2;
    characterComb.CellVerticalSpacing = 2;

    // Make the cell height depend on the current font size, 
    // and the cell width having a fixed value (measured in report units).
    characterComb.CellSizeMode = SizeMode.AutoHeight;
    characterComb.CellWidth = 25;

    // Adjust the control's dimensions to its content.
    characterComb.AutoWidth = true;
    characterComb.CanShrink = true;

    // Set its Multiline property to true.
    characterComb.Multiline = true;

    // Set its static text. This property is bindable, 
    // meaning that this text can be supplied from a data source.
    characterComb.Text = "Line1\r\nLine2";

    return characterComb;
}

#Implements

See Also