Frage

Ich habe ein Problem mit .NETs Richtextbox Kontrolle. Es scheint, dass es keine Tabellenzellformatierung unterstützt, was lustig ist, da ich die meiste Zeit Tabellen erstelle, dass der Zellinhalt rechts ausgerichtet ist (Zahlen, Währung).

Wenn ich versuche, ein WordPad -Dokument in RichTextBox zu öffnen, ignoriert es (und tatsächlich entfernt) Die Befehle für die Zellausrichtung. Ich habe mehrere Problemumgehungen ausprobiert, aber es war nicht Erfolg.

  1. Kann sich jemand eine Idee vorstellen, um dies zu beheben? (Ohne Verwendung von Schriftarten und Leerzeichen mit festen Breite) Dies wäre die beste Lösung, da andere Code bereits gut funktionieren. Wenn also nur ein schmutziger Hack erforderlich ist, wäre er großartig.

  2. Oder gibt es eine Open -Source -Alternative für .NET Rich Texteditor, die Sie empfehlen können? Ich brauche eine Benutzerkontrolle, die ich in mein Windows -Formular einbetten und programmgesteuert auf den Inhalt zugreifen kann (Inhalte erstellen oder etwas anhängen). Ich habe das Web seit einiger Zeit durchsucht, aber nur Web -Steuerelemente (Ajax/JavaScript) gefunden.

  3. Es gibt auch HTML -Wysiwyg -Redakteure, die ich verwenden könnte, aber sie sind im Grunde genommen ein IE -Browser eingebettet und bearbeitet mit MSHTML, und es fühlt sich ein bisschen seltsam an, das in einer WinForms -App zu haben (vielleicht irre ich mich falsch). Und in diesem Fall benötigen wir zusätzliche Zeit, um einen Inhaltsgenerator für HTML zu implementieren - obwohl es viel einfacher ist, zu lesen und zu generieren als RTF IMHO.

  4. Was findest ihr für diesen Zweck am besten?

War es hilfreich?

Lösung

Wenn Sie immer noch den Pfad von .NET Winforms hinuntergehen, erben Sie von RichTextBox und fügen den folgenden Code hinzu, er wird die RichTextBox in etwas "Nutzbar" verwandeln:

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

protected override CreateParams CreateParams
{
    get
    {
       CreateParams cparams = base.CreateParams; 
       if (LoadLibrary("msftedit.dll") != IntPtr.Zero)
       {
          cparams.ClassName = "RICHEDIT50W";
       }
       return cparams;
     }
}

Bezogen von hier.

Einen schönen Tag noch:)

Andere Tipps

3. Es gibt auch HTML -Wysiwyg -Redakteure, die ich verwenden könnte, aber sie sind alle im Grunde genommen ein IE -Browser, das mit MSHTML eingebettet und bearbeitet wird, und es fühlt sich ein bisschen seltsam an, das in einer WinForms -App zu haben (vielleicht irre ich mich.

Ich habe einen HTML Wysiwyg -Editor geschrieben: die ModellText HTML -Steuerung für .NET. Es ist reiner verwalteter Code, ohne Abhängigkeit von einem Browser. Es exportiert .NET -APIs, mit denen Sie programmgesteuert auf den Inhalt zugreifen können.

Die nächste Version, die (in wenigen Tagen) veröffentlicht wird, unterstützt die Zellausrichtung (durch die Unterstützung der CSS-Eigenschaft "Text-Align").

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top