关闭UserControl时的事件是什么?

时间:2017-09-20 14:20:31

标签: c# winforms

我有一个继承自UserControl的课程:

public partial class MyView : System.Windows.Forms.UserControl

我想处理当用户点击右上角的X时发生的事件。也许是Form.Closing?但我不认为这是设计师的选择。它是什么事件?

编辑:

Here is a list of all events available in the designer

1 个答案:

答案 0 :(得分:1)

class SomeControl : UserControl
{
    Form _owner;

    public SomeControl()
    {
    }

    protected override void OnVisibleChanged(EventArgs e)
    {
        base.OnVisibleChanged(e);

        if (Visible)
        {
            _owner = FindForm();
            //_owner = ParentForm; 
            _owner.FormClosing += _owner_FormClosing;
            _owner.FormClosed += _owner_FormClosed;
        }
    }

    private void _owner_FormClosed(object sender, FormClosedEventArgs e)
    {
        throw new NotImplementedException();
    }

    private void _owner_FormClosing(object sender, FormClosingEventArgs e)
    {
        Hide();
        _owner.FormClosing -= _owner_FormClosing;
        _owner.FormClosed -= _owner_FormClosed;
        Parent.Controls.Remove(this);
        _owner = null;
    }
}