0
我有一個splitcontainer。在面板1中,我有7個工具欄按鈕,當我點擊它們時會在面板2中打開一個用戶控件。 。用戶控制由不同的文本框,用戶可以填寫的代碼如下所示:在C#中的不同用戶控件之間切換時保存並加載控制值。
private void toolStripButtonBaseLayers_Click(object sender, EventArgs e)
{
splitContainer1.Panel2.Controls.Clear();
BaseLayers BL = new BaseLayers();
splitContainer1.Panel2.Controls.Add(BL);
}
private void toolStripButtonSpatialCoverage_Click(object sender, EventArgs e)
{
splitContainer1.Panel2.Controls.Clear();
SpatialCoverage SC = new SpatialCoverage();
splitContainer1.Panel2.Controls.Add(SC);
}
private void toolStripButtonFloodMaps_Click(object sender, EventArgs e)
{
splitContainer1.Panel2.Controls.Clear();
FloodMaps FM = new FloodMaps();
splitContainer1.Panel2.Controls.Add(FM);
}
現在每次我打開與單擊事件的另一用戶控制用戶控制將是空的,因爲我清楚的面板和打開一個新的用戶控制。這不是我想要做的!
我的問題是如何保存你在文本框中填寫的所有內容?以及在它們之間切換時,所有用戶控制值是否仍然可以填充?例如,我填充用戶控件BaseLayers,切換到用戶控件Spatial Coverage和Flood Maps,當我切換回用戶控件BaseLayers時,所有內容都必須填寫。
使用Controls.Clear()是非常* *危險,它並沒有處理被除去的控件。他們會在應用程序的整個生命週期中造成泄漏。但恰巧它恰好是你想要的東西。你將不得不跟蹤他們的參考,所以你可以避免創建一個新的實例,並簡單地重用現有的實例。 –
在用戶控件的加載和關閉事件中是否可能?或者你如何看待它? – user3415824