我想通过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'
答案 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();