两个控件,不是包含关系,一上一下重叠,如何让两个控件都接收到鼠标事件?

hengxxh 2019-01-23 12:34:22
两个控件,不是包含关系,所以和大部分讲事件路由的不算一回事吧。

事件路由分冒泡和隧道,处理的是层层包含的子控件和父控件之间的事件传递关系,一个从上到下,一个从下到上。

-------------------------------------------------------
我现在的问题是,两个控件属于兄弟关系,一上一下重叠在一起,两个控件都添加了鼠标的事件,鼠标点击上面一个控件,可以触发上面控件的事件,但是下面控件的事件不会触发了。怎么样可以做到 两个重叠的控件,都可以触发鼠标事件?







--------------------------------------------------------
...全文
1190 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
zmidl 2019-02-04
  • 打赏
  • 举报
回复
纠正:隧道和冒泡 统称路由
zmidl 2019-02-04
  • 打赏
  • 举报
回复
winform不知道。wpf 有路由事件和冒泡事件 一层层的传递事件通知
liusa1997 2019-02-04
  • 打赏
  • 举报
回复
能直接在上面的鼠标事件里面异步调用下面的鼠标点击事件不?
  • 打赏
  • 举报
回复
举个例子:

btn1_click(s,e)
{
btn2_click(null,e);
}
能看懂多少看懂多少吧
摸瞎 2019-01-31
  • 打赏
  • 举报
回复
在winform里可以互相调这个button1.PerformClick();
wpf不了解,但是感觉可以把两个按钮事件里的东西抽出来做个方法,再在两个按钮事件里调,不管哪个被调用,都执行了
(拙见)
血月云修 2019-01-24
  • 打赏
  • 举报
回复
哟吼吼,捕捉到一个和我同时期开始学习c#想关知识的,你在上面的窗口的事件代码里把下面的那个窗口的点击事件调用一下可以不,我也是初学者,没试过。
SDHU 2019-01-24
  • 打赏
  • 举报
回复
事件的路由传递针对的是UI树上的层级关系,同一层仅仅是在视觉上重叠在一起,被重叠的控件肯定是接收不到鼠标事件的,建议在最上层控件触发的时候主动invoke下一层控件需要触发的事件
FainSheeg 2019-01-24
  • 打赏
  • 举报
回复
这是什么场景?不能代码都写在上层控件的事件里面吗?
ygtu2018 2019-01-24
  • 打赏
  • 举报
回复
用委托事件相互关联
SoulRed 2019-01-23
  • 打赏
  • 举报
回复
额。我知道unity里有个事件穿透。就是说事件可以传递到下一级别。
但是winform 我不清楚。。
我的思路是如果没有。就模拟调用事件.invoke()
  • 打赏
  • 举报
回复
当你用鼠标拖动一个控件的时候也会现这种情况,被拖动控件可能从另一个控件的“后边”经过。WPF具有这种功能,而 Winform 比较简单原始,功能较弱,它本身的 framework 基本上没有图形系统开发功能,所以也就是玩玩儿底层的 GDI 语句。要搞专业的此类软件开发还是得用 WPF。
  • 打赏
  • 举报
回复
是 winform 还是 WPF/Silverlgiht?后者的所有控件有命中穿透的功能设计,但是前者并没有。
xuzuning 2019-01-23
  • 打赏
  • 举报
回复
又上面的控件主动调用
hengxxh 2019-01-23
  • 打赏
  • 举报
回复
引用 4 楼 SoulRed 的回复:
额。我知道unity里有个事件穿透。就是说事件可以传递到下一级别。 但是winform 我不清楚。。 我的思路是如果没有。就模拟调用事件.invoke()
穿透这个我已经了解过,也试过了,它实现的是,上面 控件的事件不触发,直接触发下面控件的鼠标事件。 而我要的是 上下两个控件都自动触发鼠标事件。
hengxxh 2019-01-23
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
又上面的控件主动调用
用上面的控件主动调用? 是这个意思么? 上面 的控件 鼠标事件触发的时候,通过代码触发下面控件的鼠标事件? 不好意思,刚用C#一个月不到,不是很熟悉,如果有类似的代码示例,麻烦给一个,谢谢!
hengxxh 2019-01-23
  • 打赏
  • 举报
回复
引用 2 楼 以专业开发人员为伍 的回复:
是 winform 还是 WPF/Silverlgiht?后者的所有控件有命中穿透的功能设计,但是前者并没有。
不好意思,还是交代的不够清楚,用的是 wpf。
游北亮 2019-01-23
  • 打赏
  • 举报
回复
窗体的Click事件, 根据点击的坐标,查找控件,触发相应事件。
  • 打赏
  • 举报
回复
不管以什么思路,最终就是要有一个合适的框架开发出来,“一条代码调用”它来解决开发问题。 所以 WPF 相对 Winform 来说是一整套适合这类开发的工具,而 Winform 基本上啥功能也没有。

111,112

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧