<SCRIPT language=JavaScript1.1 src=\"在_NET应用程序中添加拼写和语法检查功能 CIO俱乐部-计世网.files/adshow.asp\"> </script> |
1,打开Visual Studio.NET,创建一个Visual Basic的Windows应用程序工程,在窗体Form1上添加两个Button,名称分别为:btnSpellCheck和btnGrammarCheck, Text属性分别为:“拼写检查”和“语法检查”,再添加一个TextBox,名称和Text属性分别:Textbox1和“请在这里输入要进行检查的文字。”。
2,要使用Microsoft Word对象的属性和方法,需要引用Word组件。在解决方案浏览器中的“引用”上单击右键,添加引用,在弹出的对话框的标签页中选“COM”标签页,然后找到“Microsoft Word 9.0 Object Library”并双击它,单击“确定”按钮即可。注意:根据Microsoft Word版本的不同,Microsoft Word 9.0 Object Library中数字是不同的,这是Word 2000的版本号。
3,接下来就可以写代码了。首先,必须在代码里添加引用:
Imports System.Runtime.InteropServices
下面就是进行拼写检查和语法检查的代码了,为方便测试,把代码放在了一起,并进行了注释:
' 拼写检查和语法检查的过程,传递参数为是否是只进行拼写检查的变量
' 语法检查同时进行拼写检查,而拼写检查只进行拼写检查
Private Sub SpellOrGrammarCheck(ByVal blnSpellOnly As Boolean)
Try
' 创建Word对象和临时文档
Dim objWord As Object
Dim objTempDoc As Object
' 声明IDataObject存放从剪贴板返回的数据
Dim iData As IDataObject
' 如果没有数据要检查,直接退出
If TextBox1.Text.Trim() = "" Then
Exit Sub
End If
'实例化Word对象
objWord = New Word.Application
objTempDoc = objWord.Documents.Add
objWord.Visible = False
' 定位 Word 窗口,使之不可见
objWord.WindowState = 0
objWord.Top = -3000
' 复制输入框的文字到剪贴板
Clipboard.SetDataObject(TextBox1.Text)
' 对临时文档进行拼写或者语法检查
With objTempDoc
.Content.Paste()
.Activate()
If blnSpellOnly Then
.CheckSpelling()
Else
.CheckGrammar()
End If
' 在拼写检查或者语法检查后,如果用户进行了修改,
'利用剪贴板把修改后的数据返回给文本输入框
.Content.Copy()
iData = Clipboard.GetDataObject()
If iData.GetDataPresent(DataFormats.Text) Then
TextBox1.Text = CType(iData.GetData(DataFormats.Text), String)
End If
.Saved = True
.Close()
End With
' 退出Word
objWord.Quit()
MessageBox.Show("拼写检查已经完成!", "拼写检查", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
' 如果Microsoft Word没有安装就提示用户安装,
’在实际应用中需要检查客户端是否安装了Microsoft Word
Catch COMExcep As COMException
MessageBox.Show("必须安装Microsoft Word才能进行拼写或者语法检查。", "拼写检查", _
MessageBoxButtons.OK, MessageBoxIcon.Warning)
'
Catch Excep As Exception
MessageBox.Show("错误:" + Excep.Message, "拼写检查", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
'“拼写检查”按钮执行的事件
Private Sub btnSpellCheck_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSpellCheck.Click
SpellOrGrammarCheck(True)
End Sub
'“语法检查”按钮执行的事件
Private Sub btnGrammarCheck_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnGrammarCheck.Click
SpellOrGrammarCheck(False)
End Sub
在代码编辑器里加入上面的代码后,然后执行,即可看到下面进行“语法检查”的结果: