2014-09-10 37 views
1

當在C#中以編程方式在運行時添加標籤時,標籤的可見性在「this.Controls.Add(whatever)」後變爲false,這不是真的。解決此得到什麼?this.Controls.Add()visibility = false

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 

     Label label = new Label(); 
     label.Location = new Point(15, 15); 
     label.Text = "Test"; 
     label.AutoSize = true; 
     MessageBox.Show(Convert.ToString(label.Visible)); 
     this.Controls.Add(label); 
     MessageBox.Show(Convert.ToString(label.Visible)); 
    } 
} 

第一個消息框顯示「真」,而第二個消息框顯示「假」

+1

得到的值是您要添加的標籤不可見的容器? – Servy 2014-09-10 17:25:38

+1

這是準確的。該標籤尚不可見,稍後您可以看到該窗口時會發生這種情況。 – 2014-09-10 17:26:10

回答

3

你添加標籤還沒有被證實(還)形式,所以當然,因爲整個表格都是不可見的,所以表格上的標籤也不可見。

當窗體顯示時,標籤將變爲可見。

+0

是的,這是正確的。我不確定它爲什麼最初是真的。 – GenDis 2014-09-10 17:33:29

+0

@DavePerich假設沒有父母,開發人員認爲沒有明智的理由來檢查是否可見。 – Servy 2014-09-10 17:36:27

+0

@Servy你知道解決這個問題的方法嗎?我需要檢查標籤的可見性,以便知道如何設置其他標籤(在運行時也以編程方式添加)的可見性。 – GenDis 2014-09-10 17:39:47

0

由於其沒有添加的是,它默認爲真,那麼你加它,它從父

+0

我需要可見性的原因是使用它作爲一種方法的條件。我如何獲得正確的可見性值? – GenDis 2014-09-10 17:35:39

+0

@DavePerich確保標籤*實際上是可見的*如果它的重要性是'Visible'屬性返回'true'。 – Servy 2014-09-10 17:36:59

+0

不要使用可見性,繼承它的子類並添加自己的成員變量來跟蹤應用程序是否應該顯示或不顯示 – Steve 2014-09-11 18:05:23