在我作業的地方,我發現了一個帶有一個大表單的應用程式,它有一個 tabcontrol 和 14 個標簽頁,每個標簽頁都有很多相互重疊的控制元件和面板,這使得 windows 表單設計器真的很慢。保存需要 1 分鐘,更改標簽頁和更改文本框屬性需要 10 多秒。
我試圖以較小的形式將標簽頁分開,并將這些表單稱為標簽頁的子頁,以創建標簽頁處于相同形式的錯覺,但這不起作用,因為當我將表單加載到標簽頁中時,所有尺寸和位置搞砸了。
有沒有一種方法可以在不徹底改變應用程式作業方式的情況下提高 Windows 表單設計器的性能?
uj5u.com熱心網友回復:
創建 14 個用戶控制元件并調整選項卡控制元件的大小以僅顯示選項卡標題并將 aPanel作為占位符放置在選項卡控制元件下方。Then when a tab page is selected dynamically add one of the user controls to the panel with docking set to Fill.
public Form1()
{
InitializeComponent();
SelectUserControl();
}
private void TabControl1_Selected(object sender, TabControlEventArgs e)
{
SelectUserControl();
}
private void SelectUserControl()
{
UserControl? uc = (tabControl1.SelectedIndex 1) switch {
1 => new UserControl1(),
2 => new UserControl2(),
3 => new UserControl3(),
...
14 => new UserControl14(),
_ => null
};
if (uc is not null) {
while (panel1.Controls.Count > 0) {
panel1.Controls[0].Dispose();
}
uc.Dock = DockStyle.Fill;
panel1.Controls.Add(uc);
}
}
當然,當用戶控制元件更改或設定資料系結源時,您將添加代碼以加載和保存值。
但是,如果您說保存需要 1 分鐘,那么您的保存程序可能不是最佳的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/441853.html
