2024年终活动

DevExpress控件使用交流,DevExpress中国社区Dev联系电话 联系电话:023-68661681

DevExpress WinForms在线示例:XtraSpellChecker入门指南(二)

来源:   发布时间:2018-03-27   浏览:2694次

本教程演示如何使用SpellChecker组件使用德语词典检查DevExpress MemoEdit控件中的拼写。

SpellChecker组件可以检查各种文本感知控件的拼写。

要创建应用程序,请遵循以下步骤:

  • 步骤1.添加拼写检查器组件
  • 步骤2.添加字典
  • 步骤3.按需检查拼写
  • 步骤4.键入时检查拼写
  • 步骤5.用户交互

步骤1.添加拼写检查器组件和备忘录编辑控件

  1. 将SpellChecker组件添加到项目中。为此,只需从DX.18.2:Components工具箱选项卡中拖动相应的项,并将其放到表单上。
    DevExpress
  2. 指定拼写检查器的默认语言(德语)。为此,使用属性编辑器将SpellCheckerBase..e属性设置为de-DE:
    DevExpress
  3. 将备忘录编辑控件(位于DX.18.2:Common Controls工具箱选项卡上)添加到表单中,并为其打开Properties窗口(例如,通过按F4)。由于控件的内容可以由SpellChecker组件检查,所以当它被放到包含SpellChecker的表单上时,会出现许多扩展程序属性。
    DevExpress

    现在,您可以保留这些设置,然后进入下一步。

步骤2.添加字典

下一步是指定字典。

目前有四种类型的词典:

  • 拼写检查字典只是一个简单的单词列表;
  • 源自ISpell项目的SpellCheckerISpellDictionary;
  • SpellCheckerOpenOfficeDictionary是OpenOffice.org项目的一部分;
  • 源自Hun.项目的Hun.Dictionary;
  • 可以通过用户添加来扩展的SpellCheckerCustomDictionary。

对于每个字典,您应该指定它的DictionaryBase..e和SpellCheckerDictionaryBase.encodeing。复杂的字典,如ISpell、OpenOffice或Hun.类型,需要一个位于GrammarPath属性指定的路径中的附加文件。需要字母表文件是因为生成建议列表的方法。

在这个示例中,将使用OpenOffice字典和自定义字典。您可以在OpenOffice.org项目的Dictionarys页面中找到它们。从扩展存储库下载德语词典扩展。将文件扩展名更改为zip并用任何归档程序解压缩。将de_DE.dic和de_DE.aff文件解压缩到一个临时文件夹。

  1. 在项目的目录中创建Dictionarys文件夹,并将所需的字典文件(de_DE.dic和de_DE.aff)复制到该文件夹。
  2. 在Dictionarys文件夹中创建一个新的文本文件,并将其命名为GermanAlphabet.txt。这个文件将包含德文字母,按照正确排序所需的顺序。将下列字符串复制到该文件:
    ABCDEFGHIJLMNOPQRSTUVWXYZ
  3. 在Dictionarys文件夹中创建一个新的空文本文件,并将其命名为CustomGermanDictionary.txt。该文件将包含添加到自定义字典中的单词。
  4. 在项目中包括Dictionarys文件夹。
  5. 为Dictionary文件夹中的每个文件设置Copy to Output Directory属性为Copy,但CustomGermanDictionary.txt除外。对于CustomGermanDictionary.txt,如果更新则指定Copy。
  6. 打开SpellChecker组件的Properties窗口,然后单击Dictionarys项。将调用ISpellCheckerDictionary Collection Editor窗口。
  7. 在这个窗口中,单击Add箭头,并选择SpellCheckerOpenOfficeDictionary以添加OpenOffice字典。
  8. 按照以下方式指定字典属性:
    • Culture - de-DE
    • DictionaryPath - Dictionaries\de_DE.dic
    • Encoding - Western European (Windows)
    • GrammarPath - Dictionaries\de_DE.aff
    DevExpress
  9. 要添加自定义字典,单击Add箭头并选择SpellCheckerCustomDictionary项。
  10. 按照以下方式指定字典属性:
    • AlphabetPath - Dictionaries\GermanAlphabet.txt
    • Culture - de-DE
    • DictionaryPath - Dictionaries\CustomGermanDictionary.txt
    • Encoding - Western European (Windows)
    DevExpress

现在,决定SpellChecker是否会根据需要开始拼写检查(例如,单击按钮时),或者它会在您键入时检查拼写。

步骤3.按需检查拼写

在单击按钮时开始检查备忘录编辑控件中的拼写:

  1. 将SpellChecker的SpellCheckMode属性设置为OnDemand。
  2. 将SimpleButton控件(位于DX.18.2:Common Controls工具箱选项卡上)添加到表单。
  3. 若要在备忘录编辑控件中开始拼写检查,并在单击按钮时调用拼写对话框进行更正,请使用以下代码:
    private void simpleButton1_Click(object sender, EventArgs e) {
        spellChecker1.Check(memoEdit1);
    }
    Private Sub SimpleButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles SimpleButton1.Click
        SpellChecker1.Check(MemoEdit1)
    End Sub 

    当在运行时调用此方法时,SpellChecker组件加载字典(如果字典尚未加载),并开始拼写检查MemoEdit控件的内容。

步骤4.键入时检查拼写

要启用SpellChecker,在键入时检查备忘录编辑器控件的拼写:

  1. 将SpellChecker的SpellCheckMode属性设置为AsYouType。
  2. 若要在键入时执行拼写检查,请使用以下代码:
    private void Form1_Load(object sender, EventArgs e) {
        spellChecker1.SpellCheckMode = SpellCheckMode.AsYouType;
        spellChecker1.Check(memoEdit1);
    }
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        spellChecker1.SpellCheckMode = SpellCheckMode.AsYouType
        spellChecker1.Check(memoEdit1)
    End Sub

    当最终用户输入完单词或在改变单词后移动光标时,这将突出显示拼写错误的单词,并且允许从上下文菜单中选择建议,通过右击单词来调用该建议。
    DevExpress

步骤5.用户交互

当SpellChecker遇到可用字典中没有的单词或重复单词时,可以使用拼写对话框进行更正。当最终用户开始按需检查拼写时(调用SpellChecker.Check方法),或从上下文菜单中选择Check Spelling项时,将调用它。

通常,SpellingFormType.Outlook类型的拼写对话框最适合用户。

DevExpress

但是,您可以使用SpellCheckerBase.SpellingFormType属性将其更改为更通用的SpellingFormType.Word,如下图所示。

DevExpress

在这个对话框中,最终用户可以用建议的更正之一替换当前出现的或拼写错误的单词的所有出现,一次忽略该单词或其所有出现,或者将该单词添加到SpellChecker的字典中。

Options...按钮允许最终用户更改要使用的拼写选项或语言词典,并提供对定制词典编辑器的访问。Undo按钮可以逐步取消更改。

买 DevExpress Universal Subscription  免费赠 万元汉化资源包1套!

限量15套!先到先得,送完即止!立即抢购>>

本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/1116.html

相关产品: DevExpress Universal Subscription,

扫码咨询
电话咨询
023-68661681
返回
顶部