2013-03-05 89 views
3

我有一個主菜單,當我點擊其中一個按鈕時,菜單面板應該隱藏,點擊它應該打開。這適用於一個按鈕,但對於我來說它不適用。那麼,它顯示我猜想的面板,但它是空的,即使我在面板中有東西。C#面板不可見

的代碼非常簡單,所以我看不出是哪裏的問題

public Form1() 
{ 
     InitializeComponent(); 
     menu_botStrip.Text = DateTime.Now.ToString("dd/mm/yyyy h:mm tt"); 
     panel_startMenu.Show(); 
     panel_informationService.Hide(); 
     panel_customerManagement.Hide(); 
} 

private void btn_informationService_Click(object sender, EventArgs e) 
{ 
    panel_startMenu.Hide(); 
    panel_informationService.Show(); 
} 

    private void btn_customerManagement_Click(object sender, EventArgs e) 
    { 

     panel_startMenu.Hide(); 
     panel_customerManagement.Show(); 
    } 
+0

@Michael由於我再次點擊information_service以再次返回菜單,它將隱藏起來。當我從主菜單中選擇customerManagement時,它仍然不起作用 – loomie 2013-03-05 09:37:19

回答

21

確保你沒有把第二面板的第一面板內。如果您從工具箱中拖動面板,則很有可能發生這種情況。

爲了確保打開Document Outline窗口(查看 - >其他窗口 - >文檔大綱),並查看面板之間的關係。確保它們不包含在另一箇中。它們必須處於相同的嵌套層次。

如果是這樣的:

Wrong

然後選擇內面板,然後按窗口上方的左箭頭按鈕。然後,它應該是這樣的:

Right

這是正確的。

+0

是的,那是問題......我如何防止這種情況發生? – loomie 2013-03-05 09:40:21

+0

您還可以使用UserControls分別設計其內容 - 並通過代碼將其添加到父窗體中。 如果您將它們手動放置到設計器上,這樣做無能爲力,因爲您可能會意外地將userControls添加到另一個userControl - 但它在處理其內容時會有所幫助: – Michael 2013-03-05 09:47:38

+0

如果我早點發現它! – 2014-08-13 23:49:04

0

不應該是第一個面板(信息服務)再次隱藏?也許有一個醜陋的覆蓋,如果兩者都在同一時間顯示...

private void btn_informationService_Click(object sender, EventArgs e) 
{ 
    panel_startMenu.Hide(); 
    panel_customerManagement.Hide(); 
    panel_informationService.Show(); 
} 

private void btn_customerManagement_Click(object sender, EventArgs e) 
{ 
    panel_startMenu.Hide(); 
    panel_informationService.Hide(); 
    panel_customerManagement.Show(); 
} 
-1

我同意@ MD.Unicorn,你必須小心訂購窗體上的這些面板(圖層上下文)。這意味着如果您的面板包含另一個面板或面板 - 在隱藏特定的父級後,您將隱藏所有子元素。