0

我正在创建一个简单的剪贴板管理器应用程序。它监视剪贴板的内容。当发生更改时(通过 win api 消息循环),它会启动一个方法来捕获剪贴板的当前内容并创建名为 clipboarditem 的新对象。接下来它构建了一个 ContextMeuStrip,它由之前创建的几个剪贴板项组成。通过热键访问项目菜单。它在屏幕 itemsMenu.Show(caretPosition); 的某个位置显示此菜单,使用 .Focus(),我希望它在失去焦点后使其消失(例如,单击屏幕上的其他位置或通过以下方式切换应用程序alt 选项卡)。找到一个事件 OnLoseFocus 但我认为它不能正常工作,因为菜单甚至不会显示。

失去焦点后如何使 ContextMenuStrip 消失以及如何防止在 taskabr 中显示 ContextMenuStrip?

对不起我的语言能力:)

4

1 回答 1

0

快速浏览一下 ContextMenuStrip 包含的事件,您是否尝试过“MouseCaptureChanged”事件?它可以帮助您解决失去焦点的问题。

对于任务栏问题的显示,您是否在您拥有 ContextMenuStrip 的表单上将“ShowInTaskbar”设置为 false(如果您在表单上拥有它)?

于 2009-07-20T09:28:19.600 回答