繁体   English   中英

如何进行事件以更改定制属性(定制控件)

[英]How to make events for changing custom made properties (custom control)

我具有从TextBox类继承的自定义控件,并且添加了一些属性,例如,我具有placeHolderText属性,并且我想拥有一些在更改文本时会发生的事件?
像这些事件
在此处输入图片说明
在设计师视图中有我的财产
在此处输入图片说明
如何实现呢?

要在C#中创建事件,您可以遵循Standard .NET事件模式

要为自定义控件的Something属性创建Changed事件,可以按照以下步骤操作:

  • 声明一个事件SomethingChanged 它可以是任何委托,作为一般委托,您可以依赖EventHandler委托或EventHandler<T> ,以防需要特定的事件参数而不是使用EventArgs
  • 创建一个受保护的虚拟OnSomethingChanged方法,该方法接受事件args并负责引发事件。 因此,如果使用此方法,则应在体内引发事件。
  • 在属性设置器中,检查该值是否与当前值不同,进行分配,然后调用OnSomethingChanged引发事件。

public EventHandler PlaceHolderChanged;
string placeholder;
public string PlaceHolder
{
    get { return placeholder; }
    set
    {
        if (placeholder != value)
        {
            placeholder = value;
            OnPlaceHolderChanged(EventArgs.Empty);
        }
    }
}
protected virtual void OnPlaceHolderChanged(EventArgs e)
{
    PlaceHolderChanged?.Invoke(this, e);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM