Freigeben über


CharacterRange-Konstruktor

Initialisiert eine neue Instanz der CharacterRange-Struktur, die in einer Zeichenfolge einen Bereich von Zeichenpositionen angibt.

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

Syntax

'Declaration
Public Sub New ( _
    First As Integer, _
    Length As Integer _
)
'Usage
Dim First As Integer
Dim Length As Integer

Dim instance As New CharacterRange(First, Length)
public CharacterRange (
    int First,
    int Length
)
public:
CharacterRange (
    int First, 
    int Length
)
public CharacterRange (
    int First, 
    int Length
)
public function CharacterRange (
    First : int, 
    Length : int
)

Parameter

  • First
    Die Position des ersten Zeichens in dem Bereich. Wenn First z. B. auf 0 festgelegt ist, ist die erste Position des Bereichs die Position 0 in der Zeichenfolge.
  • Length
    Die Anzahl der Positionen im Bereich.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie Sie einen CharacterRange erstellen und zum Hervorheben eines Teiles einer Zeichenfolge verwenden. Dieses Beispiel ist für die Verwendung mit Windows Forms vorgesehen. Fügen Sie das Beispiel in ein Formular ein, und rufen Sie beim Behandeln des Paint-Ereignisses des Formulars die HighlightACharacterRange-Methode auf, wobei Sie e als PaintEventArgs übergeben.

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
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();

}
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.get_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.get_GenericSansSerif(), 
        16, GraphicsUnit.Pixel);
    // Construct a new Rectangle.
    Rectangle displayRectangle = new Rectangle(20, 20, 200, 100);
    // Convert the Rectangle to a RectangleF.
    RectangleF displayRectangleF = RectangleF.op_Implicit(displayRectangle);
    // Get the Region to highlight by calling the 
    // MeasureCharacterRanges method.
    Region charRegion[] = e.get_Graphics().MeasureCharacterRanges(message, 
        largeFont, displayRectangleF, stringFormat1);
    // Draw the message string on the form.
    e.get_Graphics().DrawString(message, largeFont, Brushes.get_Blue(),
        displayRectangleF);
    // Fill in the region using a semi-transparent color.
    e.get_Graphics().FillRegion(new SolidBrush(Color.FromArgb(50, 
        Color.get_Fuchsia())), charRegion[0]);
    largeFont.Dispose();
} //HighlightACharacterRange

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

CharacterRange-Struktur
CharacterRange-Member
System.Drawing-Namespace