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)