C# 自定义事件初始化问题

C# 自定义事件初始化问题,c#,events,C#,Events,我在图形对象上使用自定义事件来通知对象的更改: public class OnLabelWidthChangedEventArgs : EventArgs { private float _width; public float Width { get { return _width; } set { _width = value; } } public OnLabelWidthChangedEventArgs(floa

我在图形对象上使用自定义事件来通知对象的更改:

public class OnLabelWidthChangedEventArgs : EventArgs
{
    private float _width;

    public float Width
    {
        get { return _width; }
        set { _width = value; }
    }

    public OnLabelWidthChangedEventArgs(float widthParam) : base()
    {
        Width = widthParam;
    }
}
这是触发此事件的对象:

public class DisplayLabel : DisplayTextObject
{
    public event EventHandler<OnLabelWidthChangedEventArgs > OnLabelSizeChanged;

    public DisplayLabel(ScreenView _screenParam, IXapGraphicObject obj) : base(_screenParam, obj)
    {
        l = new Label();
        SetSize();
    }

    public override void SetSize()
    {
        Width = w;
        Height = h;
        if(OnLabelWidthChanged != null)
             OnLabelSizeChanged.Invoke(this, new OnLabelWidthChangedEventArgs(w)); //  OnLabelSizeChanged is null
    }
但是我想知道如何用自定义事件解决这个问题


感谢您的帮助。

如果您没有初始化事件,您将为其分配一个处理程序(即订阅),类似于以下内容:

myDisplayLabel.OnLabelWidthChanged += MyEventHandlerMethod;
其中,
MyEventHandlerMethod
是一个匹配事件签名的方法,即

void MyEventHandlerMethod(Object sender, OnLabelWidthChangedEventArgs)

睡前阅读:

您的工作解决方案也是一个自定义事件。请参阅“确定”,忽略了这一点。。。委托语法更紧凑。。。我想我会用的。
void MyEventHandlerMethod(Object sender, OnLabelWidthChangedEventArgs)