我正在 Visual Studio 2012 中制作 C# Windows 窗体应用程序。我想添加一个具有拼写检查功能的文本框。能解释一下具体流程吗?
如果您使用 .NET4,您可以将 References System.Xaml 和 WindowsFormsIntegration 添加到您的 Winforms 项目中。
这允许您在工具箱中找到 ElementHost。通过使用 ElementHost,您可以在 WinForms 项目中使用 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;
Windows 窗体文本框没有内置拼写检查功能。
您能做的最好的事情可能就是在表单中嵌入 WPF 文本框。 Hans Passant 在这篇文章中给出了关于如何实现这一目标的非常彻底的答案。
WinForms 没有这方面的功能。 但是,如果您想将其重用为文本框,请创建一个 WPF UserControl 并在其中放置一个 WPF TextBox。 启用拼写检查。 如果您拖放一个元素宿主一次,它会自动添加必要的引用,之后您将能够在工具箱中看到您的用户控件。 一旦用户控件可见,您所要做的就是拖放它,它会自动为您创建一个元素宿主并将 wpf 用户控件放入其中。
我知道旧链接,但 Buzzzzz 是正确的。 WinForms 无法做到这一点,但创建 wpf 文本框或 Richtext 框控件并将其添加到 WinForms 中确实很容易。找到那个该死的属性来告诉文本框进行拼写检查是很棘手的,但说真的,
现在,您的工具箱中有一个控件,其名称可随意命名。从工具箱中拖放控件即可。要与它对话,默认值是 userControl1.TextBox.Text
哦差点忘了。 Winforms 和 WPF 彼此之间并不是那么友好,如果出现红线波浪线,您将必须进行编译以删除它们。
基本上,您只需将
SpellCheck.IsEnabled
属性设置为“true”即可。像这样:
TextBox textBox = new TextBox();
textBox.SpellCheck.IsEnabled = true;
您可以在
System.Windows.Controls
命名空间中找到此属性,并像这样引用它:
using System.Windows.Controls;
社论:如果您可以探索的话,我会强烈建议使用
WPF
而不是Winforms
。 Winforms
曾经有过辉煌,但对于更现代的开发,WPF
是一个更强大的平台。