簡體   English   中英

如何重寫userControl屬性

[英]How to override userControl property

IDE:C#.net,WINFORMS,.net 4.0

嗨,您已經創建了一個userControl,並且我想創建一個屬性,如果啟用的用戶控件為false,則將背景圖像更改為imgDisabled.jpg其他imgEnabled.jpg

請告訴我如何覆蓋usercontrol的Enabled屬性並將此功能添加到其中。

  private void onPropertyChanged()
    {
        if (this.Enabled)
            this.BackgroundImage = Properties.Resources.imgEnabled;
        else
            this.BackgroundImage = Properties.Resources.imgDisabled;
    }

重寫基本Control類的虛擬OnEnabledChanged方法:

protected override void OnEnabledChanged(EventArgs e)
{
  base.OnEnabledChanged(e);
  if (this.Enabled)
    this.BackgroundImage = Properties.Resources.imgEnabled;
  else
    this.BackgroundImage = Properties.Resources.imgDisabled;
}

請使用這樣的事件提示器

class CustomProperty:屬性{公共事件EventHandler SelectionChanged;

private int _selectionStart;
private int _selectionLength;

protected override void OnMouseDown(MouseEventArgs e)
{
    _selectionStart = SelectionStart;
    _selectionLength = SelectionLength;

    base.OnMouseDown(e);
}

protected override void OnMouseUp(MouseEventArgs e)
{
    if (null != SelectionChanged && (_selectionStart != SelectionStart || _selectionLength != SelectionLength))
        SelectionChanged(this, EventArgs.Empty);

    base.OnMouseUp(e);
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM