C#自定义控件内的子控件和父控件间事件怎么传递?

这是个自定义控件,每个格子里面是个label,当我把自定义控件拖到窗体的时候,直接在其Click事件中写代码,但无法触发——因为被这些label挡住了,根本触发不到父控件... 这是个自定义控件,每个格子里面是个label,当我把自定义控件拖到窗体的时候,直接在其Click事件中写代码,但无法触发——因为被这些label挡住了,根本触发不到父控件的事件,这个怎么处理?设置label的Enabled=false是可以,但这样做字体会变灰……用自定义事件的话,我不知道怎么相互绑定。 展开
 我来答
freeeeeewind
推荐于2018-04-14 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1341万
展开全部

假设你的控件名称为UserControl1, 控件生各个Label的名称依次为label1, label2, ……

在控件UserControl1后台代码中,对每个标签的Click事件编程

 public partial class UserControl1 : UserControl
  {
        public UserControl1()
        {
            InitializeComponent();
        }
        private void label1_Click(object sender, EventArgs e)
        {
            base.OnClick(e);
        }
        private void label2_Click(object sender, EventArgs e)
        {
            base.OnClick(e);
        }
        //有多少个标签,就重复多少次!
        //……
}

这样,UserControl1布置在窗体上后,鼠标点击任何一个标签,都会引发UserControl1的Click事件

诸葛悟空
2019-02-21 · TA获得超过156个赞
知道答主
回答量:51
采纳率:0%
帮助的人:28万
展开全部
表格你用的是TableLayoutPanel么?把表格的Enabled属性设置为false,它就不再响应鼠标事件了。如果是其他容器控件,也一个道理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
winmsing
2014-03-08 · TA获得超过612个赞
知道小有建树答主
回答量:414
采纳率:0%
帮助的人:429万
展开全部
在窗体的LOAD事件里加入如下,
button1.Click += new System.EventHandler(this.Form1_Click);
......

这样就将其下的BUTTON1.CLICK绑定到了FORM1_Click里了,自定义控件同理,就这样简单。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小小阿立哥
2018-04-14
知道答主
回答量:4
采纳率:0%
帮助的人:3303
展开全部
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
private void labels_Click(object sender, EventArgs e)
{
base.OnClick(e);
}
//在设计界面里全选Label控件同时选上,在属性区里选择事件Click事件选择
//labels_Click就可以所有的label控件都能返回默认的点击事件了
//不需要有多少都写多少个事件啊!
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式