RichTextBox nie wyświetla wszystkich danych, gdy nadpisuję CreateParams

I uznany jakiś stary kod napisany przez NoBugz (Hans Passant) co, jeśli rozumiem, zmusza richtextbox do użycia RTF 5.0 zamiast 4.0. Zasadniczo jest to klasa, która dziedziczyRichTextBox i zastępujeCreateParams własność jako taka

private static IntPtr moduleHandle;

[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern IntPtr LoadLibrary(string lpFileName);

protected override CreateParams CreateParams
{
    get
    {
        if (moduleHandle == IntPtr.Zero)
        {
            moduleHandle = LoadLibrary("msftedit.dll");
            if ((long)moduleHandle < 0x20) throw new Win32Exception(Marshal.GetLastWin32Error(), "Could not load Msftedit.dll");
        }
        CreateParams createParams = base.CreateParams;
        createParams.ClassName = "RichEdit50W";
        if (this.Multiline)
        {
            if (((this.ScrollBars & RichTextBoxScrollBars.Horizontal) != RichTextBoxScrollBars.None) && !base.WordWrap)
            {
                createParams.Style |= 0x100000;
                if ((this.ScrollBars & ((RichTextBoxScrollBars)0x10)) != RichTextBoxScrollBars.None)
                {
                    createParams.Style |= 0x2000;
                }
            }
            if ((this.ScrollBars & RichTextBoxScrollBars.Vertical) != RichTextBoxScrollBars.None)
            {
                createParams.Style |= 0x200000;
                if ((this.ScrollBars & ((RichTextBoxScrollBars)0x10)) != RichTextBoxScrollBars.None)
                {
                    createParams.Style |= 0x2000;
                }
             }
        }
        if ((BorderStyle.FixedSingle == base.BorderStyle) && ((createParams.Style & 0x800000) != 0))
        {
            createParams.Style &= -8388609;
            createParams.ExStyle |= 0x200;
        }
        return createParams;
    }
}

Kiedy wykonuję to przesłonięcie, nie mogę uzyskać mojego RTF do wyświetlenia poza pierwszą linią. na przykład

string rtf = @"{\rtf1\ansi\deff0{\fonttbl{\f0 Arial;}{\f1 Courier New;}}\viewkind4\uc1\pard\lang1033\f0\fs20 {\pard\f0\ul\b Activated Partial Thromboplastin Time\b0 : Collected: "
                 + @"8/21/2012 4:15:00 AM\ulnon\f0\par}\par\pard\lang1033\f0\fs20 {\trowd"
                 + @"\trql\trgaph100\trrh280\trleft0\intbl"
                 + @"\cellx4000"
                 + @"\cellx9500"
                 + @"Activated Partial Thromboplastin Time\cell"
                 + @"36.8 Seconds\cell"
                 + @"\intbl\row}";
CustomRtb cRtb = new CustomRtb();
cRtb.Rtf = rtf;//Only the first line shows in the form...

Czy nowy standard jest o wiele mniej wyrozumiały od błędów RTF czy co? Potrzebuję ładniejszego formatowania tabeli oferowanego przez 5.0

AKTUALIZACJA
Dane zostaną wyświetlone po zmianie

+ @"\trql\trgaph100\trrh280\trleft0\intbl"

do

+ @"\trql\trgaph100\trrh280\trleft0"

Po dalszych testach odkryłem, że RTF wygląda dobrze w MS Word. W rzeczywistości nasz kod generuje RTF z MsftEdit, jak wskazano tutaj:

{\*\generator Msftedit 5.41.21.2510;}. Otwieram rzeczywisty RTF w Word i wygląda dobrze. Używam tego kodu i pasuje on do tego, co widzę słowem. Po prostu muszę usunąć niektóre granice. Muszę zrobić głębsze kopanie, aby zobaczyć, dlaczego Msftedit generuje RTF, aby był nieco nieprawidłowo wyrównany w tabelach. Ale tak, ogólnie to pytanie wykracza poza zakres tego, co mogę zrobić w SO.

questionAnswers(1)

yourAnswerToTheQuestion