winform单击按钮重新加载本窗体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform单击按钮重新加载本窗体相关的知识,希望对你有一定的参考价值。

意思大概就是我单击一个按钮,然后本窗体重新加载一下,窗体上的数据全部没有了,窗体又恢复到刚打开那样。求指教!winform的,不是web的。

参考技术A 感觉像是ERP类管理软件的单据清空和浏览单据的效果。
清空的话,直接遍例每一种控件,把它们clear掉或者赋值为null就干净啦。
浏览单据的话,直接控制另外赋值就行了嘛,也不用再清空啊。
参考技术B 试试Application.Restart();追问

嗯 ,倒是实现了,可是他会先关闭然后再显示,看着不像刷新的效果。

追答

你想要怎么刷新?就是窗体上所有控件消失然后再出现,窗体保持不变?

追问

先把窗体的所有控件还原,然后再重新绑定一个数据。类似就是textbox里面有数据,然后单击按钮,然后数据消失出现比其他数据。类似这样的,但是不是textbox控件,这个就比较简单了。我想达到的是先刷新然后再赋值。

追答

那你就设置一个按键事件,给控件重新赋值啊

本回答被提问者采纳
参考技术C 加载的意思是啥?重新调用Load方法,还是重新绘制,前者的话手动触发也可以的,后者的话用invalidation()。(手打的没试过,抱歉) 参考技术D 哦,你重新创建一下这个窗体就可以啦。

有关于winform的 点击主窗体的按钮隐藏子窗体?

详细点,我是个小白

假设主窗体是Form1,子窗体是Form2, Form3……

在主窗体后台代码 Form1.cs中,点击button1隐藏所有子窗体

private void button1_Click(object sender, EventArgs e)

           foreach (Form f in Application.OpenForms)
            
                if(f.Name != "Form1") f.Hide();
            

追问

额,按照你说的写了,但主窗体也消失了~~我只想隐藏子窗体

追答

你的主窗体的Name是什么呀?查看一下主窗体的Name属性

if(f.Name != "你的主窗体的NAME") f.Hide();

 例如,下图

主窗体的Name: FormMain,则

private void button1_Click(object sender, EventArgs e)

           foreach (Form f in Application.OpenForms)
            
                if(f.Name != "FormMain") f.Hide();
            

参考技术A 定义全局子窗体

public Form2 frm=new Form2();

显示:
frm.Show();
隐藏:
frm.Hide();

以上是关于winform单击按钮重新加载本窗体的主要内容,如果未能解决你的问题,请参考以下文章

winform窗体的实现单击按钮实现图片放大缩小

C#如何将方法传递给基本的WinForm按钮单击事件

C# Winform自定义控件加载到主窗体中之后,自定控件上面的空间 怎么和主窗体上其他控件交互?

请问Winform里面怎么单击按钮来改变窗体背景图片?(C#)

C# winform 点击一个按钮退出窗体 并关闭相应的进程

winform 窗体加载的问题,C#里不同Panel中窗体的调用