RichEditControl.GetBoundsFromPosition(DocumentPosition) Method

Gets bounds of the character at the specified position.

Namespace: DevExpress.XtraRichEdit

Assembly: DevExpress.XtraRichEdit.v20.1.dll

Declaration

public Rectangle GetBoundsFromPosition(
    DocumentPosition pos
)
Public Function GetBoundsFromPosition(
    pos As DocumentPosition
) As Rectangle

Parameters

Name Type Description
pos DocumentPosition

A target position.

Returns

Type Description
Rectangle

the area occupied by a character, or the System.Drawing.Rectangle.Empty value if the bounds could not be determined.

Remarks

You can use the GetBoundsFromPosition method only for the currently visible document part. If the specified position is not displayed, the method returns a System.Drawing.Rectangle.Empty value.

The rectangle's location and size are expressed in currently specified measurement units. Use the Document.Unit property to change the measurement units.

Examples

The following code highlights the line containing the caret. The Document.CaretPosition property determines the caret position, the RichEditControl.GetBoundsFromPosition method calculates the caret screen coordinates.

The RichEditControl instance is passed to the BarItem.ItemClick event handler using the BarItem.Tag property.

static void richEditControl_Paint(object sender, System.Windows.Forms.PaintEventArgs e) {
    RichEditControl richEdit = sender as RichEditControl;
    DocumentPosition pos = richEdit.Document.CaretPosition;
    if(pos != null) {
        System.Drawing.Rectangle rect = DevExpress.Office.Utils.Units.DocumentsToPixels(
            richEdit.GetBoundsFromPosition(pos), 
            richEdit.DpiX, 
            richEdit.DpiY);

        Section firstSection = richEdit.Document.Sections[0];
        int pageWidth = Convert.ToInt32(firstSection.Page.Width - firstSection.Margins.Left - firstSection.Margins.Right);
        e.Graphics.DrawLine(System.Drawing.Pens.Red, 
            new System.Drawing.Point(0, rect.Bottom), 
            new System.Drawing.Point(pageWidth, rect.Bottom));
    }
}
See Also