2012-03-01 39 views
1

我想一个新的属性添加到现有的标签.NET控件,如自动调整大小(现有的标签属性),添加新特性到.NET控件

像IsWordWrap(新自定义属性)=真。 (这样的话可以自动换行)

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

Textbox有wordwrap propery,有什么办法可以继承那个标签吗?

回答

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. 
    } 
} 
+0

是的,我同意你的文本框,但是你可以请你展示一个快速样本,如果你有推导新课程以及如何固定新的属性? – Sharpeye500 2012-03-01 01:33:22

+1

@ Sharpeye500:增加了一个例子。我没有实际实现包装逻辑,因为我没有时间。尽管如此...只是使用一个TextBox。如果使用标准控件(并且可以)获得所需的外观和行为,则会浪费时间。 – 2012-03-01 01:35:19

0

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