2014-04-04 43 views
1

Windows窗體應用程序顯示一個主窗體。這個主窗體包含幾個不同的面板控件。根據這種形式的某些條件,這些面板控件中的一個應該被激活,而其他的則不可見。在Windows窗體應用程序中覆蓋兩個面板

第一個面板包含DataGridView,第二個面板包含控件以顯示DataGridView的詳細信息。單擊添加按鈕(或)在DataGridView中選擇一條記錄時,第二個面板應該是可見的。我使用Visible屬性來顯示和隱藏面板,但是屏幕截圖中顯示的差距正在顯示。

請建議處理此問題的最佳方法。

enter image description here

enter image description here

回答

3

你只需要在面板共享相同的位置。您可能不希望在設計時這樣做,因爲這會使未來的表單維護變得困難。

Form.Load事件中,設置底部面板的位置以匹配頂部面板的位置。

PanelDetails.Location = PanelDataGrid.Location; 

現在當你隱藏一個並顯示另一個時,它們會出現在同一個地方。

+0

它運行良好,它們出現在同一個地方。但窗口大小與設計中相同。我們可以根據活動面板大小來設置窗口大小嗎?有沒有其他的選擇? – Sanjeev4evr

+0

在子窗體中,包含面板的窗體中,嘗試將此行添加到Form.Load事件中:WindowState = FormWindowState.Maximized; –

1

最聰明的方法是讓面板與設計師分開。通過這種方式,可以更輕鬆地完成對它們的任何編輯,並且可以立即看到所有實際的對象。

在設計師中,將其他面板的Visible屬性設置爲False,除了頂部的第一個。

Form.Load

  • 設置所有其它面板的位置,以匹配所述第一面板的位置(在頂部)

  • 將窗體的高度,以匹配期望的高度,這適合您heightest面板

  • 使用按鈕來切換面板的可見性(以及可能的形式高度太)

相關問題