用C# winForm,一个pannel容器上有许多label,怎样才能使得鼠标点击label时触发的pannel事件呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C# winForm,一个pannel容器上有许多label,怎样才能使得鼠标点击label时触发的pannel事件呢?相关的知识,希望对你有一定的参考价值。

label事件太多 如果要在每个label上写太麻烦了啊

1.捕捉Label的点击事件然后直接调用panel的事件处理函数;
2.或重写Panel控件为自己的,捕捉label的事件然后调用基类的 OnClick。
参考技术A label的点击事件中pannel.click+=然后按2下Tab键,这个是点击label触发pannel的点击事件,要触发其他事件也是一样的方法 参考技术B pannel_click(NULL,NULL);
可以执行pannel对应的那个click事件

在C#winform中如何遍历子窗体中有容器中的所有的控件

假定子窗体中有几个控件被放在一个pannel 和 groupbox容器中,请如何得到他们中的控件值内容?????谢谢……
我是指在“父窗体”中得到“子窗体”中一个pannel 或 groupbox容器中的所有控件。。。所以,楼下的哥们好像只是针对窗体中的所有控件吧。。。。

一个递归方法取得页面上所有类型为textbox的控件,并对其清空,相信你看了后有所感悟。
private void Button1_Click(object sender, System.EventArgs e)

foreach (Control ctl in this.Controls)

this.txtClear(ctl);


private void txtClear(Control ctls)

if(ctls.HasControls())

foreach (Control ctl in ctls.Controls)

txtClear(ctl);


else

if (ctls.GetType().Name == "TextBox")

TextBox tb = new TextBox();
tb = (TextBox)this.FindControl(ctls.ID);
tb.Text = "";



我对你表示无奈。你把Control ctl in this.Controls该下不就完了?
参考技术A 最好是作一个递归方法
就是如果控件是容器,就遍历控件

以上是关于用C# winForm,一个pannel容器上有许多label,怎样才能使得鼠标点击label时触发的pannel事件呢?的主要内容,如果未能解决你的问题,请参考以下文章

C# WinForm splitContainer 问题

在C#winform中如何遍历子窗体中有容器中的所有的控件

C# winform panel 画笔初始化问题

c# winform scroll 滚动条 滚动到底

C# 如何在pannel控件中加载子窗口(form)

C# picturebox显示滚动条问题求解