2009-11-06 53 views
0

在我的程序中,我有標籤控件,用戶可以隨意添加,標籤也可以綁定到數據源。我將AutoSize屬性添加到了我設計的屬性網格中,並且可以隨意將其打開和關閉。我遇到的問題是,如果在屬性網格中將AutoSize標誌設置爲true,它會將AutoSize設置爲當前單元格的內容,但是如果我在數據源中向前移動一條記錄並且文本更長,則標籤該標籤不會再調整大小。我做錯了什麼或者AutoSize的工作方式?C#AutoSize標籤問題

也沒有人知道是否有可能在運行時使捕捉線可用來對齊控件?

謝謝。

回答

2

如果我正確理解你的問題,你正在創建一個自定義組件「標籤」,問題是它的文本改變時不會調整它的大小。看看Control.OnTextChanged方法,你可以把你的尺寸調整邏輯放在那裏。水木清華這樣的:

public class TestLabel : Control 
{ 
    protected override void OnTextChanged(EventArgs e) 
    { 
    // adjust size here 
    base.OnTextChanged(e); 
    } 
} 

爲粉筆線,這些都是由設計師淹沒,在運行時,你可以通過重寫窗體或父控件OnPaint方法

自己繪製他們