2014-05-23 30 views
6

我在Visual Studio 2012中制作C#Windows窗体应用程序。我想添加一个带有拼写检查功能的文本框。你能向我解释一下这个过程吗?如何激活C#Windows窗体应用程序中的拼写检查?

+0

我已经成功地使用NHunspell加上我在CodeProject上找到的GUI组件(我认为这是一个:http://www.codeproject.com/Articles/73802/NHunspell-Component-for-Visual-Studio)。 – adv12

回答

8

如果您正在使用.NET4您可以参考System.XamlWindowsFormsIntegration程序添加到您的WinForms项目。

这使您可以在您的工具箱中找到ElementHost。通过使用ElementHost,您可以在Winfroms项目中使用WPF对象。

System.Windows.Forms.Integration.ElementHost elementHost1 = new System.Windows.Forms.Integration.ElementHost(); 
System.Windows.Controls.TextBox textBox = new System.Windows.Controls.TextBox(); 
textBox.SpellCheck.IsEnabled = true; 
elementHost1.Child = textBox; 
-1

基本上,你只需要将SpellCheck.IsEnabled属性设置为'true'。就像这样:

TextBox textBox = new TextBox(); 
textBox.SpellCheck.IsEnabled = true; 

你可以找到在System.Windows.Controls命名此属性,像这样引用它:

using System.Windows.Controls; 

编辑观点:我会强烈使用WPF建议Winforms,如果这是一个选项你可以探索。 Winforms曾经有一天,但对于更现代化的发展,WPF是一个更强大的平台。

+0

我怎样才能得到“System.Windows.Controls.TextBox”。如何导入。它在输入“using.Windows.Controls ...”时不显示我? – user3218743

+0

感谢您的编辑和WPF建议。但是当我添加“使用System.Windows.Controls”这一行时,它显示红色下划线。我必须从任何地方引用它,或者我做错了什么? – user3218743

+5

WinForms中没有这样的属性,它在问题标题和标签中。这个答案只适用于OP在WPF中完全重写他/她的应用程序。 – adv12

4

Windows窗体文本框中没有内置的拼写检查功能。

你可以做的最好的事情可能是在你的窗体中嵌入一个WPF文本框。 Hans Passant在this post中就如何实现这一点给出了一个非常全面的答案。

0

没有为没有能力的WinForms。 但是,如果你想重新使用它作为一个文本框,创建一个WPF用户控件,并把一个WPF文本框在那里。 启用拼写检查。 如果您拖放一次元素主机,它将自动添加必要的引用,之后,您将能够在工具箱中看到您的用户控件。 一旦用户控件可见,您只需拖放它,它就会自动为您创建一个元素主机,并将wpf usercontrol放入其中。