C# 面板清理一切
我想将面板重置为其初始状态。例如,我将图像设置为背景,在面板的一部分上绘制图形。我必须把一切都清理干净。怎么做?这里有一个SO链接,看起来完全符合您的要求:C# 面板清理一切,c#,controls,panel,C#,Controls,Panel,我想将面板重置为其初始状态。例如,我将图像设置为背景,在面板的一部分上绘制图形。我必须把一切都清理干净。怎么做?这里有一个SO链接,看起来完全符合您的要求: 使用以下代码从面板中删除所有图形 panel1.Invalidate(); 如果您需要将某些内容添加到面板的初始状态,那么在调用invalidate之后,您必须再次设置这些内容 如果面板的初始状态需要一些图形或数据,您可以将其放入面板的图形事件中,因此每次调用“无效”时,您的面板都会获取这些项目的初始状态。您必须首先清除面板 panel1
使用以下代码从面板中删除所有图形
panel1.Invalidate();
如果您需要将某些内容添加到面板的初始状态,那么在调用invalidate之后,您必须再次设置这些内容
如果面板的初始状态需要一些图形或数据,您可以将其放入面板的图形事件中,因此每次调用“无效”时,您的面板都会获取这些项目的初始状态。您必须首先清除面板
panel1.Controls.Clear();
然后调用初始表单
panel1.Controls.Add(orig_form);
使用
面板1.refresh()代码>命令。它将面板重置为初始状态。这是唯一对我有效的解决方案:
private void button3_Click(object sender, EventArgs e)//Clear button
{
using (g = Graphics.FromImage(bmp))
{
g.Clear(Color.Transparent);//you can choose another color for your background here.
panel1.Invalidate();
}
}
您是否可以放弃旧窗格,创建assignnew Panle()代码>引用?我假设您在编译时使用设计器,并且希望在运行时“清除”面板?您还需要清除哪些更改,请提供更多详细信息。@Vincent B:我只需要清除面板。我写了一个属性“ClearPanel”,在它里面我尝试了\n 1。将背景设置为空\n 2。panel.Controls.Clear();但是什么都不管用。劳夫K:属性还是方法?您是否考虑过调用suspendLayout()和resumeLayout(true)进行修改,是否确实调用了您的方法?即使panel.controls.clear()不起作用,也意味着这很奇怪