C# 复活控件 引用的“UserControl” 不是引用的控件 ~! 我想实现 点击复合控件里面的所有子控件都能触发父控件事件

feijidada 2019-02-13 02:34:42
我用panel.label.Picbox 做了一个类似qq的复合控件.我想实现左键点击 跟着panel有一个变色的选中效果 现在就有1个问题想跪求大佬解答
1: 如果把Panel 放在最顶层 那变色容易 但是 我想获取到里面label信息就没办法 因为 panel是顶层的 label不是挂靠在上面;
2: 如果panel在最底层 全绑在一个事件上 如上问题解决了 但是 事件要如何判断触发的是Label 还是 panel本身?


结合以上问题 我有几个思路 实在百度无果 求问实现方法:
1. 让所有子控件都穿透点击父控件,子控件只显示但是在上面所有点击都触发的是父控件 object sender, EventArgs e 都是父控件的对象;
2:希望大佬 给个思路 谢谢大佬

...全文
162 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
FainSheeg 2019-02-14
  • 打赏
  • 举报
回复
直接在Usercontrol的构造函数里用你的响应程序把this.click还有所有子控件的click事件都订阅一遍不就行了,sender就是触发源。
assky124 2019-02-14
  • 打赏
  • 举报
回复
可以设置子控件不接受鼠标事件,然后把背景设置为Transparent
feijidada 2019-02-13
  • 打赏
  • 举报
回复
已经解决 还是基础不牢靠啊
private void Panel_KeyAll_Click(object sender, EventArgs e)
{

object control = panel_KeyAll.Parent;
KEy_All_Click(control);




}

private void KEy_All_Click(object sender)
{
KEy_All kEy_All = (KEy_All)sender;
Console.WriteLine(kEy_All.Name);



}
完美解决

110,566

社区成员

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

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

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