StringFormat.SetMeasurableCharacterRanges(CharacterRange[]) StringFormat.SetMeasurableCharacterRanges(CharacterRange[]) StringFormat.SetMeasurableCharacterRanges(CharacterRange[]) StringFormat.SetMeasurableCharacterRanges(CharacterRange[]) Method

Определение

Задает массив структур CharacterRange, представляющих диапазоны знаков, измеряемые с помощью вызова метода MeasureCharacterRanges(String, Font, RectangleF, StringFormat). Specifies an array of CharacterRange structures that represent the ranges of characters measured by a call to the MeasureCharacterRanges(String, Font, RectangleF, StringFormat) method.

public:
 void SetMeasurableCharacterRanges(cli::array <System::Drawing::CharacterRange> ^ ranges);
public void SetMeasurableCharacterRanges (System.Drawing.CharacterRange[] ranges);
member this.SetMeasurableCharacterRanges : System.Drawing.CharacterRange[] -> unit
Public Sub SetMeasurableCharacterRanges (ranges As CharacterRange())

Параметры

ranges
CharacterRange[]

Массив структур CharacterRange, который представляет диапазоны знаков, измеряемые с помощью вызова метода MeasureCharacterRanges(String, Font, RectangleF, StringFormat). An array of CharacterRange structures that specifies the ranges of characters measured by a call to the MeasureCharacterRanges(String, Font, RectangleF, StringFormat) method.

Исключения

Заданы диапазоны 32 символов. More than 32 character ranges are set.

Примеры

Следующий пример кода предназначен для работы с Windows Forms и требует PaintEventArgs e, который является параметром Paint обработчик событий.The following example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. Код выполняет следующие действия.The code performs the following actions:

  • Задает диапазоны знаков StringFormat.Sets the character ranges of the StringFormat.

  • Измеряет диапазоны символов для заданного прямоугольника строки и макет.Measures the character ranges for a given string and layout rectangle.

  • Рисует прямоугольник строки и макет.Draws the string and layout rectangle.

  • Рисует области.Paints the regions. Каждый Region указывает область, может быть занято диапазона символов.Each Region specifies an area that is occupied by a range of characters. Значения в областях задаются при измерении диапазонов символов MeasureCharacterRanges метод.The values in the regions are set when the character ranges are measured by the MeasureCharacterRanges method.

  • Повторяет первые четыре шага, но включает в себя конечные пробелы в измерение каждый диапазон символов.Repeats the first four steps, but includes trailing spaces in the measurement of each character range.

  • Очищает флаги формата StringFormat таким образом, конечные пробелы не включены в измерение каждый символ диапазона.Clears the format flags of the StringFormat so that trailing spaces are not included in the measurement of each character range.

  • Повторяет первые четыре шага, но использует другой прямоугольник размещения только, чтобы продемонстрировать, что прямоугольник размещения влияет на измерения диапазонов знаков.Repeats the first four steps, but uses a different layout rectangle just to demonstrate that the layout rectangle affects the measurements of the character ranges. Размер шрифта повлияет на все измерения.The size of the font will also affect the measurement.

void SetMeasCharRangesExample( PaintEventArgs^ e )
{
   Graphics^ g = e->Graphics;
   SolidBrush^ redBrush = gcnew SolidBrush( Color::FromArgb( 50, 255, 0, 0 ) );

   // Layout rectangles, font, and string format used for displaying string.
   Rectangle layoutRectA = Rectangle(20,20,165,80);
   Rectangle layoutRectB = Rectangle(20,110,165,80);
   Rectangle layoutRectC = Rectangle(20,200,240,80);
   System::Drawing::Font^ tnrFont = gcnew System::Drawing::Font( "Times New Roman",16 );
   StringFormat^ strFormat = gcnew StringFormat;

   // Ranges of character positions within a string.
   array<CharacterRange>^ charRanges = {CharacterRange(3,5),CharacterRange(15,2),CharacterRange(30,15)};

   // Each region specifies the area occupied by the characters within a
   // range of positions. the values are obtained by using a method that
   // measures the character ranges.
   array<System::Drawing::Region^>^charRegions = gcnew array<System::Drawing::Region^>(charRanges->Length);

   // String to be displayed.
   String^ str = "The quick, brown fox easily jumps over the lazy dog.";

   // Set the char ranges for the string format.
   strFormat->SetMeasurableCharacterRanges( charRanges );

   // loop counter (unsigned 8-bit integer)
   Byte i;

   // Measure the char ranges for a given string and layout rectangle. Each
   // area occupied by the characters in a range is stored as a region. Then
   // draw the string and layout rectangle, and paint the regions.
   charRegions = g->MeasureCharacterRanges( str, tnrFont, layoutRectA, strFormat );
   g->DrawString( str, tnrFont, Brushes::Blue, layoutRectA, strFormat );
   g->DrawRectangle( Pens::Black, layoutRectA );

   // Paint the regions.
   for ( i = 0; i < charRegions->Length; i++ )
      g->FillRegion( redBrush, charRegions[ i ] );

   // Repeat the above steps, but include trailing spaces in the char
   // range measurement by setting the appropriate string format flag.
   strFormat->FormatFlags = StringFormatFlags::MeasureTrailingSpaces;
   charRegions = g->MeasureCharacterRanges( str, tnrFont, layoutRectB, strFormat );
   g->DrawString( str, tnrFont, Brushes::Blue, layoutRectB, strFormat );
   g->DrawRectangle( Pens::Black, layoutRectB );
   for ( i = 0; i < charRegions->Length; i++ )
      g->FillRegion( redBrush, charRegions[ i ] );

   // Clear all the format flags.
   strFormat->FormatFlags = StringFormatFlags(0);

   // Repeat the steps, but use a different layout rectangle. the dimensions
   // of the layout rectangle and the size of the font both affect the
   // character range measurement.
   charRegions = g->MeasureCharacterRanges( str, tnrFont, layoutRectC, strFormat );
   g->DrawString( str, tnrFont, Brushes::Blue, layoutRectC, strFormat );
   g->DrawRectangle( Pens::Black, layoutRectC );

   // Paint the regions.
   for ( i = 0; i < charRegions->Length; i++ )
      g->FillRegion( redBrush, charRegions[ i ] );
}
public void SetMeasCharRangesExample(PaintEventArgs e)
{
    Graphics     g = e.Graphics;
    SolidBrush   redBrush = new SolidBrush(Color.FromArgb(50, 255, 0, 0));
             
    // Layout rectangles, font, and string format used for displaying string.
    Rectangle    layoutRectA = new Rectangle(20, 20, 165, 80);
    Rectangle    layoutRectB = new Rectangle(20, 110, 165, 80);
    Rectangle    layoutRectC = new Rectangle(20, 200, 240, 80);
    Font         tnrFont = new Font("Times New Roman", 16);
    StringFormat strFormat = new StringFormat();
             
    // Ranges of character positions within a string.
    CharacterRange[] charRanges = { new CharacterRange(3, 5),
        new CharacterRange(15, 2), new CharacterRange(30, 15)};
             
    // Each region specifies the area occupied by the characters within a
    // range of positions. the values are obtained by using a method that
    // measures the character ranges.
    Region[]     charRegions = new Region[charRanges.Length];
             
    // String to be displayed.
    string  str =
        "The quick, brown fox easily jumps over the lazy dog.";
             
    // Set the char ranges for the string format.
    strFormat.SetMeasurableCharacterRanges(charRanges);
   
    // loop counter (unsigned 8-bit integer)
    byte  i;    
   
    // Measure the char ranges for a given string and layout rectangle. Each
    // area occupied by the characters in a range is stored as a region. Then
    // draw the string and layout rectangle, and paint the regions.
    charRegions = g.MeasureCharacterRanges(str, tnrFont,
        layoutRectA, strFormat);
   g.DrawString(str, tnrFont, Brushes.Blue, layoutRectA, strFormat);
    g.DrawRectangle(Pens.Black, layoutRectA);
     
    // Paint the regions.
    for (i = 0; i < charRegions.Length; i++)
        g.FillRegion(redBrush, charRegions[i]);   
   
             
    // Repeat the above steps, but include trailing spaces in the char
    // range measurement by setting the appropriate string format flag.
    strFormat.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
    charRegions = g.MeasureCharacterRanges(str, tnrFont,
        layoutRectB, strFormat);
    g.DrawString(str, tnrFont, Brushes.Blue, layoutRectB, strFormat);
    g.DrawRectangle(Pens.Black, layoutRectB);
     
    
    for (i = 0; i < charRegions.Length; i++)
        g.FillRegion(redBrush, charRegions[i]);   
   
    // Clear all the format flags.
    strFormat.FormatFlags = 0;                   
 
    // Repeat the steps, but use a different layout rectangle. the dimensions
    // of the layout rectangle and the size of the font both affect the
    // character range measurement.
    charRegions = g.MeasureCharacterRanges(str, tnrFont,
        layoutRectC, strFormat);
    g.DrawString(str, tnrFont, Brushes.Blue, layoutRectC, strFormat);
    g.DrawRectangle(Pens.Black, layoutRectC);
    
    // Paint the regions.
    for (i = 0; i < charRegions.Length; i++)
        g.FillRegion(redBrush, charRegions[i]);   
    
}
Public Sub SetMeasCharRangesExample(ByVal e As PaintEventArgs)
    Dim g As Graphics = e.Graphics
    Dim redBrush As New SolidBrush(Color.FromArgb(50, 255, 0, 0))

    ' Layout rectangles, font, and string format used for
    ' displaying string.
    Dim layoutRectA As New Rectangle(20, 20, 165, 80)
    Dim layoutRectB As New Rectangle(20, 110, 165, 80)
    Dim layoutRectC As New Rectangle(20, 200, 240, 80)
    Dim tnrFont As New Font("Times New Roman", 16)
    Dim strFormat As New StringFormat

    ' Ranges of character positions within a string.
    Dim charRanges As CharacterRange() = {New CharacterRange(3, 5), _
    New CharacterRange(15, 2), New CharacterRange(30, 15)}

    ' Each region specifies the area occupied by the characters within
    ' a range of positions. The values are obtained by using a method
    ' that measures the character ranges.
    Dim charRegions(charRanges.Length) As [Region]

    ' String to be displayed.
    Dim str As String = _
    "The quick, brown fox easily jumps over the lazy dog."

    ' Set the char ranges for the string format.
    strFormat.SetMeasurableCharacterRanges(charRanges)

    ' Loop counter (unsigned 8-bit integer).
    Dim i As Byte


    ' Measure the char ranges for a given string and layout rectangle.
    ' Each area occupied by the characters in a range is stored as a
    ' region. then draw the string and layout rectangle and paint the
    ' regions.
    charRegions = g.MeasureCharacterRanges(str, tnrFont, _
    RectangleF.op_Implicit(layoutRectA), strFormat)
    g.DrawString(str, tnrFont, Brushes.Blue, _
    RectangleF.op_Implicit(layoutRectA), strFormat)
    g.DrawRectangle(Pens.Black, layoutRectA)

    ' Paint the regions.
    For i = 0 To charRegions.Length - 1
        g.FillRegion(redBrush, charRegions(i))
    Next i

    ' Repeat the above steps, but include trailing spaces in the char
    ' range measurement by setting the appropriate string format flag.
    strFormat.FormatFlags = StringFormatFlags.MeasureTrailingSpaces
    charRegions = g.MeasureCharacterRanges(str, tnrFont, _
    RectangleF.op_Implicit(layoutRectB), strFormat)
    g.DrawString(str, tnrFont, Brushes.Blue, _
    RectangleF.op_Implicit(layoutRectB), strFormat)
    g.DrawRectangle(Pens.Black, layoutRectB)

    ' Paint the regions.
    For i = 0 To charRegions.Length - 1
        g.FillRegion(redBrush, charRegions(i))
    Next i

    ' Clear all the format flags.
    strFormat.FormatFlags = 0

    ' Repeat the steps, but use a different layout rectangle. The
    ' dimensions of the layout rectangle and the size of the font both
    ' affect the character range measurement.
    charRegions = g.MeasureCharacterRanges(str, tnrFont, _
    RectangleF.op_Implicit(layoutRectC), strFormat)
    g.DrawString(str, tnrFont, Brushes.Blue, _
    RectangleF.op_Implicit(layoutRectC), strFormat)
    g.DrawRectangle(Pens.Black, layoutRectC)

    ' Paint the regions.
    For i = 0 To charRegions.Length - 1
        g.FillRegion(redBrush, charRegions(i))
    Next i
End Sub

Комментарии

Задание диапазонов более 32 символов не допускается и приведет к System.OverflowException.Setting more than 32 character ranges is not allowed and will cause an System.OverflowException.

Применяется к