首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ToolStrip控件从不触发进入/离开事件?

ToolStrip控件从不触发进入/离开事件?
EN

Stack Overflow用户
提问于 2010-04-22 00:21:03
回答 1查看 1.1K关注 0票数 1

我在WinForms中创建了一个可移动的面板。我在面板中使用ToolStrip作为标题栏。我将使用ToolStrip移动面板,并指示面板是否“活动”。因此,当面板处于活动状态时,我希望将ToolStrip的BackColor更改为红色。

更新:面板将承载其他控件,如listview。当托管控件获得焦点时,我希望面板显示为“活动”,类似于普通窗口的行为,而窗口成为面板,标题栏成为ToolStrip。

当面板被认为是“活动”时

由鼠标focus

  • ToolStrip 拖动MouseDown/MouseClick

  • ToolStrip的
  1. 托管控件

其想法是捕获ToolStrip的Enter/Leave事件以更改颜色,但这些事件似乎从未触发过。

这些事件真的从未被触发过吗?我应该捕捉其他事件吗?

EN

回答 1

Stack Overflow用户

发布于 2012-03-17 10:59:59

嗯,我想有几种方法可以做到这一点。

您可以使用钩子进入IMessageFilter消息,并查看它是否位于您的工具条/面板上,然后相应地操作(WM_LBUTTONDOWN、WM_MOUSEMOVE、WM_LBUTTONUP等)--请参阅windows消息上的WIndows文档,以获取所有windows消息的十六进制消息代码。有许多关于-例如:How to detect if the mouse is inside the whole form and child controls?的例子

根据是否处于活动状态设置boolen,油漆中的覆盖可以允许颜色设置-或者简单地将它们与/而不是布尔值一起翻转。对于移动,设置一个用于移动活动/或不活动的布尔值,然后允许WM_MOUSEMOVE根据需要移动表单/面板(或不移动)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2687454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档