【问题标题】:Firing parent event from childrens' events Visual Studio从儿童事件 Visual Studio 中触发父事件
【发布时间】:2017-07-27 16:09:23
【问题描述】:

我有一个包含图片框和标签的自定义 UserControl。我希望在用户双击 UserControl 边界内的任何位置时发生一些事情。但是,图片框和标签会阻止用户控件捕获双击事件,因此只有在单击未被图片框或标签遮挡的区域时才会记录双击。

我曾尝试在图片框和标签上强制双击事件来调用UserContol的OnMouseDoubleClick()函数,但它没有按预期工作:

pictureBox1.MouseDoubleClick += Double_Click;
label1.MouseDoubleClick += Double_Click;

...

private void Double_Click(object sender, MouseEventArgs e)
{    
    // Raises UserControl's double-click event      
    this.OnMouseDoubleClick(e); 
}

为什么双击图片框或标签不会引发 UserControl 的 OnMouseDoubleClick 事件?

【问题讨论】:

    标签: c# .net winforms user-controls


    【解决方案1】:

    试试这个代码,它对我有用:

    label1.DoubleClick += label1_DoubleClick;
    pictureBox1.DoubleClick += pictureBox1_DoubleClick;
    
    private void label1_DoubleClick(object sender, EventArgs e)
    {
        OnDoubleClick(e);
    }
    
    private void pictureBox1_DoubleClick(object sender, EventArgs e)
    {
        OnDoubleClick(e);
    }
    

    【讨论】:

    • 就是这样。我使用的是OnMouseDoubleClick 而不是OnDoubleClick。
    猜你喜欢
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多