将新属性添加到.NET控件

时间:2012-03-01 01:30:07

标签: c# winforms c#-3.0

我正在尝试向现有标签.NET控件添加新属性,例如AutoSize(现有标签属性),

像IsWordWrap(new custom property)= true。 (这样的话可以自动换行)

有什么想法?所以我可以给LabelName.IsWordWrap = true;

Textbox有wordwrap属性,有什么方法可以继承标签,无论如何?

2 个答案:

答案 0 :(得分:4)

您可以从Label派生一个新类,并添加您需要的逻辑。简单地将TextBox设计成看起来像标签的方式要容易得多。

using System.Windows.Forms;
// ...

class WrappingLabel : Label
{
    private bool _isWordWrap
    public bool IsWordWrap
    {
        get { return _isWordWrap; }
        set 
        {
            if( _isWordWrap != value )
            {
                _isWordWrap = value;                    
                FormatText( value );
            }
        }
    }

    private void FormatText( bool wrapped )
    {
        // logic to wrap or un-wrap text goes here.
        // you will need to call this when the text changes as well.
    }
}

答案 1 :(得分:1)

您还可以查看列出的解决方案here(还有其他一些解决方案)。