将事件添加到更改属性中引发的自定义控件

时间:2014-11-14 10:26:14

标签: c# winforms events delegates

创建自定义控件并继承TextBox;我向此控件SelectedRow添加了新属性,在此TextBox显示弹出窗体和用户选择项中,此项目放在SelectedRow属性中。这部分是正常的。现在我想要在SelectedRow属性更改时引发此控件的事件。为此我宣布delegate

  public delegate void EventDelegate(object sender, EventArgs e);
来自event

和实例delegate

  public event EventDelegate SelectedChange;

并添加事件调用者:

    protected virtual void OnSelectedChange(EventArgs e)
    {
        EventDelegate handler = SelectedChange;
        if (handler != null) handler(this, EventArgs.Empty);
    }

并在结束步骤中从属性调用OnSelectedChange

    public object SelectedRow 
    {
        get { return _selectedRow; }
        set
        {
            if (value == null || value == _selectedRow) return;
            _selectedRow = value;
            this.OnSelectedChange(EventArgs.Empty);

        }
    }

我的问题:

1-在OnSelectedChange处理程序中始终为null且事件未提升

2 - 我的方法是正确的吗?

0 个答案:

没有答案