SpellCheck-fähige TextBox für Windows Forms

Dieser Tipp zeigt auf, wie eine TextBox mit SpellCheck in Windows Forms erstellt werden kann. Die TextBox ermöglicht es, Steuerelemente wie in einer Textverarbeitung in Echtzeit auf die Rechtschreibprüfung zu überprüfen.

Autor/in Alejandro Amrein
Datum 27.11.2013
Lesezeit 2 Minuten

Dieser Tipp zeigt auf, wie eine TextBox mit SpellCheck in Windows Forms erstellt werden kann. Die TextBox ermöglicht es, Steuerelemente wie in einer Textverarbeitung in Echtzeit auf die Rechtschreibprüfung zu überprüfen.

Windows Presentation Foundation (WPF) hat in PresentationFramework.dll verbesserte Steuerelemente, die im Gegensatz zur Windows-Forms-Version eine Unterstützung für SpellCheck mitbringen.

SpellCheck Main Window Windows Forms
TextBox ohne SpellCheck

Achtung: Damit die Rechtschreibprüfung aktiviert werden kann, muss ein «Language Pack for .NET Framework 4.0» installiert werden. Wer also die deutsche Rechtschreibung überprüfen möchte, muss das Language Pack «.NET Framework 4.0 German» installieren.

Gut zu wissen:  WPF-Steuerelemente können in Windows Forms (und auch umgekehrt) integriert werden. Dazu brauchen wir die Klasse ElementHost (in WindowsFormsIntegration.dll):

var host = new ElementHost();
var tb = new System.Windows.Controls.TextBox();
... // tb als SpellCheck-fähig markieren
host.Child = tb;
host.Location = new Point(50, 50);
host.Size = new Size(100, 20);
this.Controls.Add(host);

Die Spellcheck-Eigenschaft des TextBox-Objekts ist eine Dependency Property. In WPF XAML wird diese Eigenschaft wie folgt gesetzt:

Integration WPF Steuerelemente in Windows Forms
Integration WPF-Steuerelemente in Windows Forms

Um diese Eigenschaft programmatisch zu setzen, müssen wir folgenden Code schreiben:

...
var tb = new System.Windows.Controls.TextBox();
tb.SpellCheck.IsEnabled = true;
host.Child = tb;
...

Damit alles funktioniert, müssen wir einige Verweise sicherstellen:

  • WindowsFormsIntegration
  • PresentationCore
  • PresentationFramework
  • System.Core
  • System.Xaml
  • WindowsBase
  • UIAutomationProvider
  • UIAutomationTypes

Unsere (von WPF geklaute) TextBox sollte sich nun in unserer Windows-Forms-Applikation wie erwünscht verhalten!

SpellCheck-fähige TexBox
SpellCheck-fähige TexBox

Viel Spass beim Ausprobieren!

Seminare für Softwareentwickler

Bei Digicomp finden Sie ein breites Angebot an Weiterbildungen im Bereich Software- und Webentwicklung. Zum Beispiel:

Alle Kurse …

Bei Digicomp finden Sie ein breites Angebot an Weiterbildungen im Bereich Software- und Webentwicklung. Zum Beispiel:

Alle Kurse …


Autor/in

Alejandro Amrein

Alejandro Amrein, geboren in Argentinien, doktorierte 1986 an der ETH Zürich in numerischer Mathematik. Seit mehr als 15 Jahre arbeitet er als unabhängiger Entwickler, Berater und Trainer in Software Development mit Schwergewicht auf Microsoft Entwicklungstechnologien. Als Microsoft Certified Professional Developer (MCPD) und Microsoft Certified Trainer (MCT) unterrichtet er für Digicomp Academy AG verschiedene Kurse (C/C++, ASP.NET, C#, VB.NET, SharePoint, jQuery, WPF, u.a.).

4 Kommentare

Der Wandale 15. November 2015, 16:41Uhr

ich habe den code so
private void Form1
Load(object sender, EventArgs e)
{

var host = new ElementHost();
var tb = new System.Windows.Controls.TextBox();
host.Child = tb;
host.Location = new Point(50, 50);
host.Size = new Size(100, 20);
this.Controls.Add(host);

tb.SpellCheck.IsEnabled = true;
host.Child = tb;
}

aber er markiert mir die fehlerhaften wörter nicht, language Pack ist auch instaliert, aber den code, der im Bild ist habe ich noch nicht hinzugefügt, wo muss ich den einfügen?

Alejandro Amrein 17. November 2015, 08:21Uhr

Hier ein vollständiges Projekt: http://static.news.digicomp.ch/1447684799/spellcheckerdemo.zip.
Warum die fehlerhaften Wörter nicht markiert werden kann ich nicht nachvollziehen. Bei mir hat es funktioniert (vorausgesehen der Language Pack wurde installiert).

Christian 12. November 2015, 23:56Uhr

Ich komme bei diesem Tutorial überhaupt nicht mit. gibts da auch ein video tutorial

Raphael Geiger 13. November 2015, 08:54Uhr

Hallo
Ein Video Tutorial gibt es zurzeit keines. Welcher Schritt ist denn unklar?

Viele Grüsse
Raphael Geiger