在父级的mdi子级中设置richtextbox控件的contextmenustrip

时间:2014-08-19 08:54:38

标签: c# .net richtextbox contextmenustrip

我想通过mdi子窗体中的mdi父窗体代码分配特定的richtextbox contextmenustrip,但它不起作用。 如何设置richtextbox1以使用contextMenuStrip2?

mdi child包含两个已创建的contextmenustrip,名为contextMenuStrip1和contextMenuStrip2。 richtextbox1的默认值是contextMenuStrip1。

使用以下代码, richTextBox1文本属性按预期更改,但尝试更改contextmenustrip不会执行任何操作。由于行childForm.Controls [" richTextBox1"]。ContextMenuStrip.Name =" contextMenuStrip2&#34 ;;。

,它会同时显示contextMenuStrip1,同时显示contextMenuStrip2。

Mdiparent.cs:

Form childForm = new Form1("contextMenuStrip2");
childForm.Show();

Form1.cs中:

public Form1(String correctcontextmenu)
        {
            InitializeComponent();
            richTextBox1.ContextMenuStrip = correctcontextmenu;
        }

错误列表包含:

错误1无法隐式转换类型' string' to' System.Windows.Forms.ContextMenuStrip'

1 个答案:

答案 0 :(得分:1)

如您所知,字符串不是ContextMenuStrip。由于ContextMenuStrips对于ChildForm是私有的,你应该只是传递一个标志来告诉表单它应该使用哪个菜单:

public Form1(bool useOtherMenu)
{
  InitializeComponent();
  if (useOtherMenu)
  {
    richTextBox1.ContextMenuStrip = contextMenuStrip2;
  }
}

然后调用它:

Form childForm = new Form1(true);
childForm.MdiParent = this;
childForm.Show();