当前位置:  开发笔记 > 开发工具 > 正文

将菜单项添加到默认上下文菜单

如何解决《将菜单项添加到默认上下文菜单》经验,为你挑选了1个好方法。

我想将菜单项添加到默认值ContextMenua RichTextBox.

我可以创建一个新的上下文菜单但是我丢失了默认菜单中显示的拼写检查建议.

有没有办法在不重新实现所有内容的情况下添加项目?



1> Donnelle..:

使用拼写建议,剪切,粘贴等重新实现RichTextBox上下文菜单并不是太棘手.

连接上下文菜单打开事件如下:

AddHandler(RichTextBox.ContextMenuOpeningEvent, new ContextMenuEventHandler(RichTextBox_ContextMenuOpening), true);

在事件处理程序中根据需要构建上下文菜单.您可以使用以下内容重新创建现有的上下文菜单项:

private IList GetSpellingSuggestions()
{
    List spellingSuggestions = new List();
    SpellingError spellingError = myRichTextBox.GetSpellingError(myRichTextBox.CaretPosition);
    if (spellingError != null)
    {
        foreach (string str in spellingError.Suggestions)
        {
            MenuItem mi = new MenuItem();
            mi.Header = str;
            mi.FontWeight = FontWeights.Bold;
            mi.Command = EditingCommands.CorrectSpellingError;
            mi.CommandParameter = str;
            mi.CommandTarget = myRichTextBox;
            spellingSuggestions.Add(mi);
        }
    }
    return spellingSuggestions;
}

private IList GetStandardCommands()
{
    List standardCommands = new List();

    MenuItem item = new MenuItem();
    item.Command = ApplicationCommands.Cut;
    standardCommands.Add(item);

    item = new MenuItem();
    item.Command = ApplicationCommands.Copy;
    standardCommands.Add(item);

    item = new MenuItem();
    item.Command = ApplicationCommands.Paste;
    standardCommands.Add(item);

    return standardCommands;
}

如果存在拼写错误,您可以使用以下命令创建全部忽略:

MenuItem ignoreAllMI = new MenuItem();
ignoreAllMI.Header = "Ignore All";
ignoreAllMI.Command = EditingCommands.IgnoreSpellingError;
ignoreAllMI.CommandTarget = textBox;
newContextMenu.Items.Add(ignoreAllMI);

根据需要添加分隔符.将它们添加到新的上下文菜单的项目,然后添加闪亮的新MenuItems.

我将继续寻找获得实际上下文菜单的方法,因为这与我将在不久的将来开展的工作相关.


也可以直接在MSDN上找到一个非常相似的示例:http://msdn.microsoft.com/zh-cn/library/system.windows.controls.richtextbox.getspellingerror(v=vs.110).aspx
推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有