Do you mean free? I think the ComponentOne tools that MS put in the VB 2003
Resource came with a free SpellChecker component. Not sure if that's still
available... it has been a while since the resource kit came out.
You can also enlist Word to do spellchecking for you.... check this out....
it seems a bit kludgy at first, but it works quite well (for WinForms
anyway):
Option Strict Off
Public Class MSWordSpellChecker
Implements IDisposable
'Adapted from old VB6 code
Private m_oWord As Object
Private m_oWordDoc As Object
Private m_bInit As Boolean
Public Sub Init()
m_oWord = CreateObject("Word.Application")
m_oWordDoc = m_oWord.Documents.Add
m_oWord.Visible = False
m_oWord.WindowState = 2 'WdWindowState.wdWindowStateMinimize
m_bInit = True
End Sub
Public Sub SpellCheck(ByRef sText As String)
Dim iLen As Integer
If Not m_bInit Then Init()
m_oWord.Selection.WholeStory()
m_oWord.Selection.Text = sText
m_oWord.Selection.LanguageID = 1033 'WdLanguageID.wdEnglishUS
m_oWordDoc.CheckSpelling()
m_oWord.Selection.WholeStory()
sText = m_oWord.Selection.Text
' strip off CR/LF on end of string
iLen = Len(sText)
While (iLen > 0 And ((Right(sText, 1) = vbCr) Or (Right(sText, 1) =
vbLf)))
iLen -= 1
sText = Left(sText, iLen)
End While
m_oWord.Visible = False
End Sub
Public Sub SpellCheckClipboard()
If Not m_bInit Then Init()
m_oWord.Selection.WholeStory()
m_oWord.Selection.Paste()
m_oWord.Selection.LanguageID = 1033 'WdLanguageID.wdEnglishUS
m_oWordDoc.CheckSpelling()
System.Windows.Forms.Clipboard.SetDataObject(New
System.Windows.Forms.DataObject)
m_oWord.Selection.WholeStory()
m_oWord.Selection.Copy()
m_oWord.Visible = False
End Sub
Public Sub Dispose() Implements System.IDisposable.Dispose
Try
If Not m_oWordDoc Is Nothing Then
m_oWordDoc.Close(SaveChanges:=0)
'WdSaveOptions.wdDoNotSaveChanges
m_oWordDoc = Nothing
End If
If Not m_oWord Is Nothing Then
m_oWord.Quit()
m_oWord = Nothing
End If
Catch
'do nothing
End Try
End Sub
Protected Overrides Sub Finalize()
Dispose()
MyBase.Finalize()
End Sub
End Class