CharacterRange 结构 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指定字符串内字符位置的范围。
public value class CharacterRangepublic value class CharacterRange : IEquatable<System::Drawing::CharacterRange>public struct CharacterRangepublic struct CharacterRange : IEquatable<System.Drawing.CharacterRange>type CharacterRange = structPublic Structure CharacterRangePublic Structure CharacterRange
Implements IEquatable(Of CharacterRange)- 继承
- 实现
示例
下面的代码示例演示如何创建 CharacterRange 并使用它突出显示字符串的一部分。 此示例旨在与 Windows 窗体 一起使用。 将示例粘贴到窗体中, HighlightACharacterRange 并在处理窗体的 Paint 事件时调用 方法,作为 ePaintEventArgs传递。
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.
   array<CharacterRange>^ temp = {CharacterRange( message->IndexOf( searchWord ), searchWord->Length )};
   array<CharacterRange>^ranges = temp;
   // Construct a StringFormat object.
   StringFormat^ stringFormat1 = gcnew StringFormat;
   // Set the ranges on the StringFormat object.
   stringFormat1->SetMeasurableCharacterRanges( ranges );
   // Declare the font to write the message in.
   System::Drawing::Font^ largeFont = gcnew System::Drawing::Font( FontFamily::GenericSansSerif,16.0F,GraphicsUnit::Pixel );
   // Construct a new Rectangle.
   Rectangle displayRectangle = Rectangle(20,20,200,100);
   // Convert the Rectangle to a RectangleF.
   RectangleF displayRectangleF = displayRectangle;
   // Get the Region to highlight by calling the 
   // MeasureCharacterRanges method.
   array<System::Drawing::Region^>^charRegion = e->Graphics->MeasureCharacterRanges( message, largeFont, displayRectangleF, stringFormat1 );
   // Draw the message string on the form.
   e->Graphics->DrawString( message, largeFont, Brushes::Blue, displayRectangleF );
   // Fill in the region using a semi-transparent color.
   e->Graphics->FillRegion( gcnew SolidBrush( Color::FromArgb( 50, Color::Fuchsia ) ), charRegion[ 0 ] );
   delete largeFont;
}
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.
    stringFormat1.SetMeasurableCharacterRanges(ranges);
    // Declare the font to write the message in.
    Font largeFont = new Font(FontFamily.GenericSansSerif, 16.0F,
        GraphicsUnit.Pixel);
    // 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, 
        displayRectangleF);
    // Fill in the region using a semi-transparent color.
    e.Graphics.FillRegion(new SolidBrush(Color.FromArgb(50, Color.Fuchsia)), 
        charRegion[0]);
    largeFont.Dispose();
}
Private Sub HighlightACharacterRange(ByVal e As PaintEventArgs)
    ' Declare the string to draw.
    Dim message As String = _
        "This is the string to highlight a word in."
    ' Declare the word to highlight.
    Dim searchWord As String = "string"
    ' Create a CharacterRange array with the searchWord 
    ' location and length.
    Dim ranges() As CharacterRange = _
        New CharacterRange() _
            {New CharacterRange(message.IndexOf(searchWord), _
            searchWord.Length)}
    ' Construct a StringFormat object.
    Dim stringFormat1 As New StringFormat
    ' Set the ranges on the StringFormat object.
    stringFormat1.SetMeasurableCharacterRanges(ranges)
    ' Declare the font to write the message in.
    Dim largeFont As Font = New Font(FontFamily.GenericSansSerif, _
        16.0F, GraphicsUnit.Pixel)
    ' Construct a new Rectangle.
    Dim displayRectangle As New Rectangle(20, 20, 200, 100)
    ' Convert the Rectangle to a RectangleF.
    Dim displayRectangleF As RectangleF = _
        RectangleF.op_Implicit(displayRectangle)
    ' Get the Region to highlight by calling the 
    ' MeasureCharacterRanges method.
    Dim charRegion() As Region = _
        e.Graphics.MeasureCharacterRanges(message, _
        largeFont, displayRectangleF, stringFormat1)
    ' Draw the message string on the form.
    e.Graphics.DrawString(message, largeFont, Brushes.Blue, _
        displayRectangleF)
    ' Fill in the region using a semi-transparent color.
    e.Graphics.FillRegion(New SolidBrush(Color.FromArgb(50, _
        Color.Fuchsia)), charRegion(0))
End Sub
构造函数
| CharacterRange(Int32, Int32) | 指定字符串内字符位置的范围,初始化 CharacterRange 结构的新实例。 | 
属性
| First | 获取或设置字符串中此 CharacterRange 的第一个字符的位置。 | 
| Length | 获取或设置此 CharacterRange 中的位置数。 | 
方法
| Equals(CharacterRange) | 指示当前实例是否等于同一类型的另一个实例。 | 
| Equals(Object) | 获取指示此对象是否与指定对象等效的值。 | 
| GetHashCode() | 返回此实例的哈希代码。 | 
运算符
| Equality(CharacterRange, CharacterRange) | 比较两个 CharacterRange 对象。 指示两个 CharacterRange 对象的 First 和 Length 值是否相等的值。 | 
| Inequality(CharacterRange, CharacterRange) | 比较两个 CharacterRange 对象。 指示两个 CharacterRange 对象的 First 和 Length 值是否不等的值。 |