Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用户控件单击-Windows窗体_C#_Winforms_User Controls - Fatal编程技术网

C# 用户控件单击-Windows窗体

C# 用户控件单击-Windows窗体,c#,winforms,user-controls,C#,Winforms,User Controls,我的windows窗体上有一个自定义用户控件。此控件上有几个标签 我将在表单上动态显示这些控件的数组,其中将包含不同的数据位 我想做的是知道当我点击哪个用户控件时,它被选中了 当我单击用户控件上的空白区域时,这会起作用,但是,如果我单击用户控件上的任何标签,它将无法识别用户控件的单击 关于如何进行完整的用户控件单击,即使正在单击控件上的标签,您有什么想法吗 如果这个问题不清楚,或者您需要更多信息,请留下评论 我用c#做这件事 谢谢 当在用户控件上单击另一个控件时,不会触发用户控件的单击事件。您需

我的windows窗体上有一个自定义用户控件。此控件上有几个标签

我将在表单上动态显示这些控件的数组,其中将包含不同的数据位

我想做的是知道当我点击哪个用户控件时,它被选中了

当我单击用户控件上的空白区域时,这会起作用,但是,如果我单击用户控件上的任何标签,它将无法识别用户控件的单击

关于如何进行完整的用户控件单击,即使正在单击控件上的标签,您有什么想法吗

如果这个问题不清楚,或者您需要更多信息,请留下评论

我用c#做这件事


谢谢

当在用户控件上单击另一个控件时,不会触发用户控件的单击事件。您需要手动绑定每个元素的单击事件。您可以通过用户控件的codebehind上的简单循环来实现这一点:

foreach (Control control in Controls)
{
    // I am assuming MyUserControl_Click handles the click event of the user control.
    control.Click += MyUserControl_Click;
}
在这段代码工作之后,当用户控件上的任何控件被单击时,MyUserControl_Click将触发

    foreach (Control c in this.Controls)
    {
        c.Click += new EventHandler(SameAsForm_Click);
    }

请记住,这不会将标签在分组框、面板等中的clickevents添加到“SameAsForm\u Click”-EventHandler中。

太棒了!这完全有帮助。非常感谢!非常感谢。请注意,您应该为控件内的控件(例如面板内的控件)包含一个递归添加/删除,并且您不应该忘记检查事件方法中的对象类型:
public void MyUserControl\u Click(object sender,EventArgs e){if(sender.GetType()是Label){…}
。否则你很容易遇到问题。