我有一个放置在控件下方的表单面板。我将使用该面板绘制从黑色到透明的渐变,以模拟控件投射的阴影。然而,在面板下方还有其他控件,并且面板会捕捉本应传递给其下方面板的点击事件。
如何使点击事件“穿透”面板并传递给其下方的面板?我不想覆盖整个消息处理程序。我也可以接受关于如何实现阴影的其他建议。
如何使点击事件“穿透”面板并传递给其下方的面板?我不想覆盖整个消息处理程序。我也可以接受关于如何实现阴影的其他建议。
很遗憾,点击事件不会像那样穿透(即如果您在表单上设置了一个点击处理程序并放置了一个按钮,当您单击按钮时,只有按钮的点击处理程序会被触发)。您可以这样级联点击事件:
topPanel_OnClick() { bottomPanel_OnClick(topPanel, EventArgs.Empty); }
显然会增加噪音,但这比点击出现“掉落”行为要好得多,后者会触发一系列事件。
WM_NCHITTEST
д»Ҙиҝ”еӣһHTTRANSPARENT
жҜ”еҲҶеҲ«еӨ„зҗҶйј ж ҮжҢүдёӢгҖҒйј ж ҮжқҫејҖгҖҒйј ж Ү移еҠЁгҖҒйј ж ҮеҚ•еҮ»гҖҒйј ж ҮеҸҢеҮ»зӯүиҰҒе№ІеҮҖеҫ—еӨҡгҖӮ - Ben VoigtIsHitTestVisible
设置为false以实现您想要的效果,但是在WinForms中,每个控件都有自己的窗口,因此您必须自己冒泡事件。