怎么样在.NET应用程序中添加拼写和语法检查功能?
在.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://www.45fan.com/a/question/68844.html