Seltsame Verschiebung beim Auswählen von Text in Richtext-Feld v5, der Hyperlinks enthält

Wenn ich die RichTextBox.Select-Funktion (int start, int length) verwende, um Text in einem Rich-Text-Feld auszuwählen, das Hyperlinks enthält, gibt es eine gewisse Verschiebung in der Auswahl, wenn ich versuche, Text auszuwählen, der hinter dem Hyperlink steht.

Wenn ich den Hyperlink entferne, funktioniert die Auswahl ordnungsgemäß.

Bearbeiten: Ich verwende RichTextBox 5 (der Standard in Visual Studio ist Version 4)

public class RichText50W : RichTextBox
{
    [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
    static extern IntPtr LoadLibrary(string lpFileName);
    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams prams = base.CreateParams;
            if (LoadLibrary("msftedit.dll") != IntPtr.Zero)
            {
                prams.ClassName = "RICHEDIT50W";
            }
            return prams;
        }
    }
}

Das Problem tritt nur bei richtextbox 5+ auf.

Diese Bilder zeigen das Problem und den Unterschied im Verhalten.

Wenn Sie dies versuchen, müssen Sie die HideSelection-Eigenschaft von richtextboxes auf "false" setzen.

Ausgewählte Funktionen werden auf den Tasten angezeigt.

Für RTB5 sollte 'e' in "Text" im obigen Bild ausgewählt werden.

Anscheinend wählt RTB5 versteckten Text aus.

Ich muss es nur anhand des sichtbaren Textes auswählen.

RTB 4 hat Probleme bei der Verwendung von Tabellen, daher möchte ich es nicht verwenden.

Ich benutze .NET 2.0

Bearbeiten: Um dies in Visual Studio zu versuchen, beginnen Sie mit der Standardrichtextbox und ändern Sie ihre Deklaration in RichText50W anstelle von RichTextBox

Auch RichEdit 6 hat das gleiche Problem.

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage