我正在创建一个简单的剪贴板管理器应用程序它监视剪贴板的内容。当发生更改时(通过win api消息循环),它会激活一个方法来捕获剪贴板的当前内容并创建名为clipboarditem的新对象。接下来它构建一个ContextMeuStrip,它由以前创建的几个剪贴板组成。项目菜单由热键访问。它显示在屏幕itemsMenu.Show(caretPosition);的某个位置上的这个菜单,与.Focus(),我想让它在失去焦点后消失(例如,点击屏幕上的其他部分或切换应用程序ALT-标签)。发现一个事件OnLoseFocus,但我认为它的工作正常,因为菜单甚至都没有出现。
如何在失去焦点后使ContextMenuStrip消失,以及如何防止在taskabr中显示ContextMenuStrip?
对不起我的语言技能:)。
答案 0 :(得分:0)
通过快速查看ContextMenuStrip包含的事件,您是否尝试过“MouseCaptureChanged”事件? 可以帮助您解决失去焦点的问题。
对于任务栏问题中的显示,您是否在具有ContextMenuStrip的表单上将“ShowInTaskbar”设置为false(如果您在表单上有它)?