我正在Visual Studio 2012中创建一个C#Windows窗体应用程序。我想添加一个带有拼写检查功能的文本框。你能解释一下这个过程吗?
答案 0 :(得分:11)
如果您使用的是.net4,则可以将参考 System.Xaml 和 WindowsFormsIntegration 添加到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 :(得分:6)
Windows窗体文本框中没有内置的拼写检查功能。
您可以做的最好的事情可能是在表单中嵌入WPF文本框。 Hans Passant在this post中就如何实现这一目标给出了一个非常彻底的答案。
答案 2 :(得分:1)
没有WinForms功能。 但是,如果要将其重用为文本框,请创建WPF UserControl并在其中放置WPF TextBox。 启用拼写检查。 如果您拖放元素主机一次,它将自动添加必要的引用,之后,您将能够在工具箱中看到您的用户控件。 一旦usercontrol可见,您只需拖放它,它将自动为您创建一个元素主机并将wpf usercontrol放入其中。
答案 3 :(得分:1)
我知道旧链接,但 Buzzzzzz 是正确的。 WinForms 做不到,但是创建 wpf 文本框或富文本框控件并将其添加到您的 WinForms 中真的很容易。找到告诉文本框进行拼写检查的该死的属性是骗人的,但很严重,
现在您的工具箱中有一个控件,您可以随意命名它。从工具箱中拖放控件即可。要与之交谈,默认值将是 userControl1.TextBox.Text
哦,差点忘了。 Winforms 和 WPF 彼此之间并不是那么友好,如果出现红线波浪线,您必须进行编译以删除它们。
答案 4 :(得分:-1)
基本上,您只需将SpellCheck.IsEnabled
属性设置为' true'。像这样:
TextBox textBox = new TextBox();
textBox.SpellCheck.IsEnabled = true;
您可以在System.Windows.Controls
命名空间中找到此属性,并像这样引用它:
using System.Windows.Controls;
编辑:我会强烈建议使用WPF
而不是Winforms
,如果这是您可以探索的选项。 Winforms
只有一天,但为了更现代化的发展,WPF
是一个更强大的平台。