CharacterRange Structure


Specifies a range of character positions within a string.

Namespace:   System.Drawing
Assembly:  System.Drawing (in System.Drawing.dll)

public struct CharacterRange

System_CAPS_pubmethodCharacterRange(Int32, Int32)

Initializes a new instance of the CharacterRange structure, specifying a range of character positions within a string.


Gets or sets the position in the string of the first character of this CharacterRange.


Gets or sets the number of positions in this CharacterRange.


Gets a value indicating whether this object is equivalent to the specified object.(Overrides ValueType.Equals(Object).)


Returns the hash code for this instance.(Overrides ValueType.GetHashCode().)


Gets the Type of the current instance.(Inherited from Object.)


Returns the fully qualified type name of this instance.(Inherited from ValueType.)

System_CAPS_puboperatorSystem_CAPS_staticEquality(CharacterRange, CharacterRange)

Compares two CharacterRange objects. Gets a value indicating whether the First and Length values of the two CharacterRange objects are equal.

System_CAPS_puboperatorSystem_CAPS_staticInequality(CharacterRange, CharacterRange)

Compares two CharacterRange objects. Gets a value indicating whether the First or Length values of the two CharacterRange objects are not equal.

The following code example demonstrates how to create a CharacterRange and use it to highlight part of a string. This example is designed to be used with Windows Forms. Paste the example into a form and call the HighlightACharacterRange method when handling the form's Paint event, passing e as PaintEventArgs.

private void HighlightACharacterRange(PaintEventArgs e)

    // Declare the string to draw.
    string message = "This is the string to highlight a word in.";

    // Declare the word to highlight.
    string searchWord = "string";

    // Create a CharacterRange array with the searchWord 
    // location and length.
    CharacterRange[] ranges = 
        new CharacterRange[]{new CharacterRange
        (message.IndexOf(searchWord), searchWord.Length)};

    // Construct a StringFormat object.
    StringFormat stringFormat1 = new StringFormat();

    // Set the ranges on the StringFormat object.

    // Declare the font to write the message in.
    Font largeFont = new Font(FontFamily.GenericSansSerif, 16.0F,

    // Construct a new Rectangle.
    Rectangle displayRectangle = new Rectangle(20, 20, 200, 100);

    // Convert the Rectangle to a RectangleF.
    RectangleF displayRectangleF = (RectangleF)displayRectangle;

    // Get the Region to highlight by calling the 
    // MeasureCharacterRanges method.
    Region[] charRegion = e.Graphics.MeasureCharacterRanges(message, 
        largeFont, displayRectangleF, stringFormat1);

    // Draw the message string on the form.
    e.Graphics.DrawString(message, largeFont, Brushes.Blue, 

    // Fill in the region using a semi-transparent color.
    e.Graphics.FillRegion(new SolidBrush(Color.FromArgb(50, Color.Fuchsia)), 



.NET Framework
Available since 1.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top