如何防止标题栏在打开另一个表单时变灰?

How to prevent title bar from greyed out upon opening another form?

我正在互联网上找到的 open-source 文本编辑器项目中处理自定义上下文菜单。自定义上下文菜单由 Form 组成。问题是当我打开自定义上下文菜单时,文本编辑器(主窗体)失去了焦点(变成灰色)。我希望它看起来像 this when the context menu opens, but not this。我已经尝试了一些解决方案,但它们没有用:

Solution 1:导致自定义上下文菜单在打开后位于文本编辑器的背面。然后它停止了自定义上下文菜单的正常工作。

Solution 2: 导致我的程序崩溃所以自动关闭

解决方案 3:我尝试使用 Control.Focus()Control.Activate() 在调用自定义上下文菜单时将焦点放在文本编辑器上,但仍然没有没用。

有没有我可以尝试的其他解决方案,或者我在这里遗漏了什么?

Link(前往:分支 -> v2.01) 到我正在处理的自定义上下文菜单项目。 请注意 我已经做到了 Control Key(CTRL) + Right mouse button(RMB) 调用自定义上下文菜单。

我不确定这是否是传统上正确的做法,但它对我有用。

但是,它带来的另一个问题是无法执行上下文菜单项功能。可以点击,但没有任何反应。

//activated event handler for the context menu
private void ContextMenu_Activated(object sender, EventArgs e)
        {
            //solution A
            this.Activate(); //gives the main form the focus

            //solution B
            //this.Focus(); //gives the main form the focus

            contextMenuObj.Visible = true; //forces the context menu to be displayed

            //to maintain highlighted text in textbox in main form
            richTextBox1.HideSelection = false;

            //reset default flag once custom context menu opens
            ctrlIsDown = false;
            rmbIsUp = false;
        }

这样,在显示上下文菜单时主窗体不会变灰。