【发布时间】:2011-11-18 18:11:06
【问题描述】:
这似乎是一个小故障,多年来一直困扰着我。一些 ActiveX 控件,当放置在工作表上时,单击时会做一些奇怪的事情。在下图中,没有任何代码并且Label1被禁用,但是当Label1被点击时,Label2消失了。我还看到黑色标签在单击时变白。我知道防止这种情况发生的唯一方法是使用子类化/挂钩来拦截和取消标签上的 wm_mousedown 消息,但对于这样一个简单的目标来说,这是大量的工作。有没有人有一个简单的解决方案?
*编辑:我相信正在发生的事情是 z-order/z-index 将单击的控件带到顶部。但如果有办法防止这种情况发生,我很想知道如何。
以下是单击标签时背景颜色变化的示例。请参阅标题为“原始值:”的标签
【问题讨论】:
-
你是说当你有物理重叠的标签时,你点击后面的那个,你希望它留在后面吗?您描述的行为听起来是设计使然。当您单击某物时,它会将焦点更改为控件,通常您希望在放置在它上面的任何东西上都可以看到它。
-
真的吗?通常对我来说,事情会按照最初设计的顺序进行。例如,当您单击网页时,网页的背景图像不会覆盖整个页面。您不希望面板在单击面板时覆盖面板上的所有项目。订单不应因点击而改变。如果是设计,我认为这是一个愚蠢的设计
-
苹果和橙子。当您在彼此顶部打开两个不同的浏览器窗口并单击一个时,它将获得焦点并覆盖第二个窗口。您单击了它,因此 Windows 假定您希望在另一个窗口中看到它。这是设计使然。文本框和命令按钮的作用与标签相同。
-
Windows 是肯定的,但对于像标签这样的控件,它的延迟
标签: excel vba ms-office activex