2012-03-01 37 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(還有其他幾個)。