如何防止标题栏在打开另一个表单时变灰?
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;
}
这样,在显示上下文菜单时主窗体不会变灰。
我正在互联网上找到的 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;
}
这样,在显示上下文菜单时主窗体不会变灰。