【发布时间】:2020-10-07 16:27:44
【问题描述】:
我在同一个地方有控件(一个在另一个之上)
有没有办法在 z-order 更改时获取事件?
目的是为了调试,看看什么时候,谁改变了顺序
可以通过BringToFront或SendToBack或SetChildIndex更改
喜欢Control.ZOrderChanged 或form.Controls.ZOrderChanged
【问题讨论】:
-
没有这样的事件,请阅读:stackoverflow.com/questions/14064067/… 但是为什么需要这样的事件,如果你在调用 BringToFront()/SendToBack()/SetChildIndex() 之前可以编写逻辑或者在调用这些方法之后,我看不到使用事件的任何意义。换句话说,是什么触发了 Z 顺序的变化?
-
当Control收到
WM_NCPAINT消息时,可以查看int childIndex = [Control].Parent.Controls.GetChildIndex([Control])。不过,调用这些方法的是您的代码。你能描述一下这是干什么用的吗? -
是用来调试看谁改变z-order
-
也许在 z 顺序发生变化的地方执行
debug.WriteLine
标签: c# winforms events controls