在.NET应用程序中添加拼写和语法检查功能 |
作者: 孟宪会 出自: 【孟宪会之精彩世界】 发布日期: 2003-8-28 23:44:09
|
在我们的.NET应用程序中加入拼写和语法检查功能,可以减少输入的拼写和语法错误,也可以使我们的应用程序看起来更专业一点。本文就介绍如何在Visual Basic.NET Windows Form工程中加入这些功能。在.NET框架下实现这一功能是非常简单的,只需要客户端安装Microsoft Word,如Microsoft Word 97, 2000, XP和2003即可。下面就看看实现的过程。
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
在代码编辑器里加入上面的代码后,然后执行,即可看到下面进行“语法检查”的结果:
|
本文地址:http://com.8s8s.com/it/it45409.htm