for (int i = panelMain.Controls.Count - 1; i >= 0; --i) panelMain.Controls[i].Dispose(); --〉 for (int i = panelMain.Controls.Count - 1; i >= 0; --i) { panelMain.Controls.Clear(); panelMain.Controls[i].Dispose(); }
to haiwangstar(南河三(天狼星上有没有普及C#)) :加panel.Clear();我也试过,但还是不行,实际上我在跟踪调试的时候,发现执行完panelMain.Controls[i].Dispose();的时候panelMain.Controls.Count已经是0了,所以我认为加不加panel.Clear();应该不是问题的核心所在
to The123(在我地盤這 伱就得聽我的) :有没有搞错?panelMain.Controls都已经Clear()了,还去执行panelMain.Controls[i].Dispose();不出错就怪了
刚刚我把 for (int i = panelMain.Controls.Count - 1; i >= 0; --i) panelMain.Controls[i].Dispose(); 屏蔽掉了,在uc.Focus();前面添加了uc.BringToFront();这样没有出现任何问题,所以我觉得问题还是出在panelMain.Controls[i].Dispose();上
panelMain.Controls[i].Dispose();
--〉
for (int i = panelMain.Controls.Count - 1; i >= 0; --i)
{
panelMain.Controls.Clear();
panelMain.Controls[i].Dispose();
}
for (int i = panelMain.Controls.Count - 1; i >= 0; --i)
panelMain.Controls[i].Dispose();
屏蔽掉了,在uc.Focus();前面添加了uc.BringToFront();这样没有出现任何问题,所以我觉得问题还是出在panelMain.Controls[i].Dispose();上
//通过Id获取UserControl的实例
UserControl uc = GetUserControlById(id);uc.Dock = System.Windows.Forms.DockStyle.Fill;//把新的UserControl添加到Panel中
panelMain.Controls.Add(uc);//清除Panel中的其他已加载的UserControl
for (int i = panelMain.Controls.Count - 2; i >= 0; --i)
panelMain.Controls[i].Dispose();
uc.Focus();