Entwickler-Ecke

WinForms - Spell Checker


3marci - Mo 14.03.11 19:22
Titel: Spell Checker
Hi Leute,

diesmal habe ich Fragen um den Spell checker, den Microsoft mitliefert -> System.Windows.Controls.SpellCheck (PresentationFramework.dll).
Den Spell Checker bräuchte ich für eine System.Windows.Forms.RichTextBox .

In der MSDN steht dass ich den SpellCheck auch per SpellCheck.SetIsEnabled(myTextBox, true); an einer Textbox anwenden kann, aber das funktioniert nicht.
Da gibt mir die IDE einen Fehler aus: "Kann nicht von "System.Windows.Forms.RichTextBox" in "System.Windows.Controls.Primitives.TextBoxBase" konvertiert werden."

Hat jemand ne Idee wie ich SpellCheck auch für die System.Windows.Forms.RichTextBox anwenden kann?

Links zu MSDN
Aktivieren der Rechtschreibprüfung in einem Textbearbeitungssteuerelement [http://msdn.microsoft.com/de-de/library/ms788728%28v=VS.90%29.aspx]
SpellCheck-Klasse: http://msdn.microsoft.com/de-de/library/system.windows.controls.spellcheck%28v=VS.90%29.aspx


Ps. Mit WPF gehts übrigens ganz einfach, da man da nur SpellCheck.IsEnabled="True" im XAML-Code reinschreiben muss.


Th69 - Di 15.03.11 19:44

Hi 3marci,

ich denke, das wird nicht funktionieren, da ja die SpellCheck-Klasse explizit nur eine von System.Windows.Controls.Primitives.TextBoxBase abgeleitete Klasse unterstützt. Die WinForms-Klassen sind ja intern ganz anders aufgebaut.

Aber wenn du sowieso einige WPF-Dlls (z.b: PresentationFramework.dll) in deinem WinForms-Projekt verwendest (bzw. verwenden willst), dann könntest du auch die WPF-RichTextBox mittels der ElementHost-Klasse [http://msdn.microsoft.com/de-de/library/system.windows.forms.integration.elementhost.aspx] hosten.
Und dort dann den SpellChecker zusätzlich einsetzen.


3marci - Mi 16.03.11 23:07

Um die ElementHost-Klasse richtig nutzen zu können muss ich 4 weite DLLs einbinden... PresentationCore.dll, PresentationFramework.dll, WindowsBase.dll, WindowsFormsIntegration.dll .
Danke für die Hilfe, aber dann verzichte ich lieber auf den SpellCheck von Microsoft.
Vielleicht finde ich ja noch was auf Google, falls ja werde ich das natürlich hier Posten.