Windows窗體應用程序顯示一個主窗體。這個主窗體包含幾個不同的面板控件。根據這種形式的某些條件,這些面板控件中的一個應該被激活,而其他的則不可見。在Windows窗體應用程序中覆蓋兩個面板
第一個面板包含DataGridView,第二個面板包含控件以顯示DataGridView的詳細信息。單擊添加按鈕(或)在DataGridView中選擇一條記錄時,第二個面板應該是可見的。我使用Visible屬性來顯示和隱藏面板,但是屏幕截圖中顯示的差距正在顯示。
請建議處理此問題的最佳方法。
Windows窗體應用程序顯示一個主窗體。這個主窗體包含幾個不同的面板控件。根據這種形式的某些條件,這些面板控件中的一個應該被激活,而其他的則不可見。在Windows窗體應用程序中覆蓋兩個面板
第一個面板包含DataGridView,第二個面板包含控件以顯示DataGridView的詳細信息。單擊添加按鈕(或)在DataGridView中選擇一條記錄時,第二個面板應該是可見的。我使用Visible屬性來顯示和隱藏面板,但是屏幕截圖中顯示的差距正在顯示。
請建議處理此問題的最佳方法。
你只需要在面板共享相同的位置。您可能不希望在設計時這樣做,因爲這會使未來的表單維護變得困難。
在Form.Load
事件中,設置底部面板的位置以匹配頂部面板的位置。
PanelDetails.Location = PanelDataGrid.Location;
現在當你隱藏一個並顯示另一個時,它們會出現在同一個地方。
最聰明的方法是讓面板與設計師分開。通過這種方式,可以更輕鬆地完成對它們的任何編輯,並且可以立即看到所有實際的對象。
在設計師中,將其他面板的Visible
屬性設置爲False
,除了頂部的第一個。
Form.Load
:
設置所有其它面板的位置,以匹配所述第一面板的位置(在頂部)
將窗體的高度,以匹配期望的高度,這適合您heightest面板
使用按鈕來切換面板的可見性(以及可能的形式高度太)
它運行良好,它們出現在同一個地方。但窗口大小與設計中相同。我們可以根據活動面板大小來設置窗口大小嗎?有沒有其他的選擇? – Sanjeev4evr
在子窗體中,包含面板的窗體中,嘗試將此行添加到Form.Load事件中:WindowState = FormWindowState.Maximized; –