c# - 如何更改(并稍后恢复)文本框中的默认上下文菜单

标签 c# wpf contextmenu default

我想更改默认的文本框上下文菜单,所以我创建了自己的菜单并像那样分配它们

texbox.ContextMenu = myContextMenu

但是我不知道如何恢复默认的文本框菜单(在运行时)。仅当我用鼠标右键单击文本框(同时按住控制按钮)时,我才需要显示 myContextMenu。在其他情况下,我需要显示默认的文本框上下文菜单。 可能吗??

最佳答案

这里是微软给出的例子:

http://msdn.microsoft.com/en-us/library/ms750420.aspx

作为记录,这里是使用 WinForms 执行此操作的方法:

public partial class TextBoxContextMenuDemo : Form
{
    ContextMenu mnuContextDefault;
    ContextMenu mnuContextAlt;

    MenuItem mnuItmAltMenuTest;

    public TextBoxContextMenuDemo()
    {
        InitializeComponent();
        InitializeAltContextMenu();
    }

    private void InitializeAltContextMenu()
    {
        mnuContextDefault = new ContextMenu();
        mnuContextDefault = this.TextBox1.ContextMenu;

        mnuItmAltMenuTest = new MenuItem();
        mnuItmAltMenuTest.Index = -1;
        mnuItmAltMenuTest.Text = "Test Menu Item";
        mnuItmAltMenuTest.Click += new System.EventHandler(this.mnuItmAltMenuTest_Click);

        mnuContextAlt = new ContextMenu();
        mnuContextAlt.MenuItems.Add(mnuItmAltMenuTest);
    }

    private void TextBox1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right)
        {
            if ((Control.ModifierKeys == Keys.Control))
            {
                this.TextBox1.ContextMenu = mnuContextAlt;
                TextBox1.ContextMenu.Show(TextBox1, new Point(e.X, e.Y));
            }
            else
            {
                this.TextBox1.ContextMenu = mnuContextDefault;
            }
        }
    }

    private void mnuItmAltMenuTest_Click(object sender, System.EventArgs e)
    {
        MessageBox.Show("You clicked the alternate test menu item!");
    }
}

喂!

关于c# - 如何更改(并稍后恢复)文本框中的默认上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3471439/

相关文章:

c# - 检索 BLOB 文件

c# - 如何从代码隐藏更改 XAML 元素模板?

WPF 绑定(bind) FallbackValue 设置为绑定(bind)

c# - 将多个文件/文件夹从 Windows 资源管理器传递到外部应用程序

android - 如何使用上下文菜单获取 Edittext 数据?

C# double.TryParse with InvariantCulture 返回意外结果

c# - 如果用户开始使用 @ 特殊字符(如 whatsapp 标记功能)打字,Xamarin Android 如何显示列表?

java - 如何隐藏一些 ListView 上下文菜单(从 xml 加载)项目?

java - 如何使用 JTS 或 NTS 找到曲线角点?

wpf - 资源字典的 Visual Studio xaml 编辑器