寻找免费的拼写检查解决方案,我认为我这样做很聪明,但我想不是。
我已经创建了一个基于 Windows 表单的应用程序,并且我希望表单将用户指定数量的用户控件(带有文本框)添加到面板上。然后用户可以单击某个按钮,此面板上的控件将被清除并添加新控件。用户做某事并重复该过程。现在,我希望这些文本框支持拼写检查,并到处寻找免费的解决方案。
WPF 文本框支持拼写检查,而常规 win 表单中的文本框不支持。我想我可以通过将这些 WPF 文本框添加到 ElementHost 对象来使用它们,该对象又位于面板中。该面板将是一个用户控件。
因此,在我的应用程序中,我将能够将这些用户控件的实例添加到表单中,并利用 .NET 的拼写检查优势。这实际上有效,但是在使用该应用程序一段时间后,发现该应用程序最终会由于内存不足错误而冻结在我身上。我已经确定了这些 WPF 控件的内存错误,因为普通文本框不会发生此问题。
当窗口打开并指定控件的数量时,这几乎就是添加控件的方式:
Dim xOffset As Integer = 0
For i As Integer = 0 To theNumber
Dim myUserControl As New SpecialUserControl()
myPanel.Controls.Add(myUserControl)
myUserControl.Location = New Point(7, 7)
myUserControl.Location = New Point(xOffset, 7)
xOffset = xOffset + 207
Next
注意:
- myPanel 是表单上的面板
- SpecialUserControl 是带有 WPF 文本框的用户控件(在 ElementHost 对象中)
当用户按下按钮时,面板被清除:
myUserControl.Controls.Clear()
然后用户可以重复该过程。
当我试图找到解决方案时,互联网上有很多结果,我认为我遇到的问题是由于 WPF 控件即使在清除面板后也不会消失。根据这个结论,我尝试了不同的解决方案来处理这些控件或将它们设置为空,但内存问题不断发生。如果有人可以在这里给我一些建议或想法,我将非常感激。