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