C# 将鼠标事件传递给Base控件,搜索一个好的解决方案

C# 将鼠标事件传递给Base控件,搜索一个好的解决方案,c#,events,user-controls,C#,Events,User Controls,你好 谢谢你的阅读。我得到的答案真的帮了我很大的忙 但问题是。我将UserControl作为基类。子类将其控件添加到UserControl上,让我们调用第一个BaseControl和第二个ChildControl 在BaseControl级别,我在一些MouseeEvents上附加了一些代理 问题是,如果添加了子控件,它们将不会开火。所以我知道我可以从所有的孩子身上拿走所有的鼠标事件,然后把它们穿过去。但这是第一个非常肮脏的第二个不够。因为我想在周围绘制边框或移动BaseControl 所以我的

你好

谢谢你的阅读。我得到的答案真的帮了我很大的忙

但问题是。我将UserControl作为基类。子类将其控件添加到UserControl上,让我们调用第一个BaseControl和第二个ChildControl

在BaseControl级别,我在一些MouseeEvents上附加了一些代理

问题是,如果添加了子控件,它们将不会开火。所以我知道我可以从所有的孩子身上拿走所有的鼠标事件,然后把它们穿过去。但这是第一个非常肮脏的第二个不够。因为我想在周围绘制边框或移动BaseControl

所以我的问题是真的:如果添加了ChildControls,有没有办法完全访问at Base控件中的MouseeEvents

非常感谢

托马斯

编辑:

以下是片段,希望您理解:

 public partial class baseControl : UserControl
{
    public baseControl()
    {

        InitializeComponent();

        //will not be called 
        this.MouseUp += delegate(object sender, MouseEventArgs e)
        {
            // some code
        };
    }

}

public partial class child : baseControl
{
    secretControl childControl; 
    public child()
    {
        InitializeComponent();
        this.childControl= new secretControl ();
        this.childControl.Visible = true;
        //... ,more 
        this.forChildUsePanel.Add(this.childControl);


        // works fine , as it will be called
        this.childControl.MouseUp += delegate(object sender, MouseEventArgs e)
        {
            // some code
        };


    }

}
提醒:这是snippets,所以为了理解它,它会抄近路

Simpelput:
我想在添加到BaseControl的每个控件上获取一些鼠标事件。

我认为如果您想在子控件中截获事件,应该将事件处理程序附加到每个子控件,而不是父控件。

您要添加什么类型的控件?这可能是自定义这些控件的解决方案。例如,如果添加标签,则创建一个新的MousePassthroughLabel,该标签继承自Label und,其inbuild MouseeEvent只触发其父控件之一。对每种类型的控件执行此操作一次,并使用您自己的“MousePassthrough”-控件而不是本机控件。

有一种新的Microsoft技术,它将使事件驱动编程更容易。

嗨,Thomas-请提供一个代码示例,以便我们可以看到您正在尝试执行的操作,例如在其上添加自己的图形、速度表和表格。有些人有自己的鼠标手柄是的,这是我要走的路。但是我觉得很脏。我父母对这个孩子没有偏见。希望有办法