精华内容
下载资源
问答
  • WinForm 关闭窗体时刷新父窗体的数据WinForm 关闭窗体时刷新父窗体的数据
  • 1. close():指仅关闭当前窗体,如果不是主窗体(包含主线程的窗体,并非MDI窗体)的话,是无法退出整个程序的。如果有托管线程也无法退出。 此方法会调用 dispose() 方法,所以它会自动的帮我们释放内存,除了以下两...

    关闭窗体的四种方法

    1. close():指仅关闭当前窗体,如果不是主窗体(包含主线程的窗体,并非MDI窗体)的话,是无法退出整个程序的。如果有托管线程也无法退出。

    此方法会调用 dispose() 方法,所以它会自动的帮我们释放内存,除了以下两种情况:(1)该窗体是多文档应用程序(MDI)的一部分并且此窗体不可见;(2)此窗体是“模态”窗体。

    close() 方法执行的时候会触发两个事件:Form_Closing 和 Form_Closeed 事件,Form_Closing 是在窗体关闭时执行,Form_Closed 是在窗体关闭之后执行,所以如果想取消关闭窗体,可以在 Form_Closing 事件里取消。

    2. Application.Exit(): 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出。

    3. Application.ExitThread(): 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题。

    4. System.Environment.Exit(0); 这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。 参数0:代表程序正常退出;参数1:代表程序非正常退出。

    close() 和 dispose() 的区别

    close():这个方法会自动调用 dispose()方法。

    dispose():这个方法的作用是释放组件使用的所有资源,.NET 提供的垃圾自动回收机制,可以帮我们自动回收垃圾对象,可是垃圾回收器只能回收“托管资源”,而不能回收“非托管资源”,而且垃圾回收器也并不是立即回收,而是每隔一段时间才会回收一次,每次回收的时间我们都不知道。

    所以 dispose() 方法是为了弥补这种机制所产生的方法,调用 dispose(true) 方法可以释放“托管”和“非托管”资源,而且它可以不必等待垃圾回收器来自动释放,调用此方法可以显示释放资源。

    Form.show() 和 Form.ShowDialog() 的区别

    From.Show():窗体显示出来的是非模态窗体

    From.ShowDialog():窗体显示出来的是模态窗体,而且点击窗体右上角的关闭按钮时,它不是调用 close() 方法,而是调用 hide() 方法。所以它并不是真正的关闭,再调用此方法窗体还会出现。而非模态窗体,点击关闭的时候,会调用 close() 方法,再次调用 Show() 方法,就会报错,因为窗体对象已被释放。

    托管资源 和 非托管资源

    托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象

    非托管资源:不受CLR管理的对象,windows内核对象,如文件、数据库连接、套接字、COM对象等

    如果某类型使用到了非托管资源,那么,就需要让此类型继承接口IDisposable。需要显示释放资源,因为垃圾回收器并不会回收非托管资源。
     

    展开全文
  • Form1 的Button 下 { Form2 f2 = new Form2(); f2.ShowDialog(this);// this.Close(); } Form2 的load 下 ...//只能隐藏不能关闭 this.owner.hide(); } 转载于:https://www.cnblogs.com/hanke123/...

    Form1 的Button 下

    {

    Form2 f2 = new Form2();
    f2.ShowDialog(this);//
    this.Close();

    }

     

    Form2 的load 下

    {

    //只能隐藏不能关闭

    this.owner.hide();

    }

    转载于:https://www.cnblogs.com/hanke123/p/5359607.html

    展开全文
  • winform关闭窗体的同时关闭父窗体

    千次阅读 2017-03-23 13:44:38
    1、父窗体Form1中调用子窗体Form2代码: Form2 fr = new Form2(); fr.ShowDialog( this ); 2、子窗体的FormClosed事件代码: private void Form2_FormClosed ( object sender, ...

    1、父窗体Form1中调用子窗体Form2代码:

    Form2 fr = new Form2();
    fr.ShowDialog(this);

    2、子窗体的FormClosed事件代码:

     private void Form2_FormClosed(object sender, FormClosedEventArgs e)
            {
                Form1 fr = new Form1();
                fr = (Form1)this.Owner;
                fr.Dispose();
                fr.Close();            
            }

    原文:http://blog.csdn.net/muzai/article/details/8249966

    展开全文
  • 模式窗体 : 被调用的窗体名() 对象名 = new 被调用的窗体名(); 对象名.showDialog(); 父窗体 : ... C# WinForm 关闭登陆窗体,打开主窗体的实现. - CSDN博客 来源网址:http://b...

    模式窗体 : 

    被调用的窗体名() 对象名 = new 被调用的窗体名();  

    对象名.showDialog();

     

    父窗体 :

    设置父窗体的IsMDIContainer 属性为True  

    在show()前设置子窗体MdiParent属性为True

     

     

    C# WinForm 关闭登陆窗体,打开主窗体的实现. - CSDN博客

    来源网址: http://blog.csdn.net/qq520360/article/details/7524234

    环境:开发环境Visual Studio 2010  Login.cs是登陆窗口   Main.cs是程序主窗口

    问题:一个WinForm程序登陆界面登陆成功后如何关闭登陆窗口显示主窗口?

    经菜鸟我多番搜索和实践。由下面方法实现:

    主要思想:程序运行后先打开登陆窗口,主窗体在登陆窗口Login.DialogoResult==DialogReesult.OK时运行主窗体

    实现方法:

     首先在解决方案管理器(Program.cs)里的代码

    static void Main()  
    {  
        Application.EnableVisualStyles();  
        Application.SetCompatibleTextRenderingDefault(false);  
        Form Login = new Login();  
        Login.ShowDialog();//显示登陆窗体  
        if (Login.DialogResult == DialogResult.OK)  
            Application.Run(new Main());//判断登陆成功时主进程显示主窗口  
        else return;  
    }  

    然后在登陆窗口(Login.cs)的登陆按钮(BTLogin)Click事件里:

    private void BTLogin_Click(object sender, EventArgs e)  
    {  
        if (TBUserName.Text == "www.520360.com" && TBPassWord.Text == "123")  
        {  
            this.DialogResult = DialogResult.OK;//关键:设置登陆成功状态  
            this.Close();  
        }  
        else  
        {  
            MessageBox.Show("账号或密码错误,请重试");  
        }  
    }  
    

    运行测试OK!

     

     

     

    C#子窗体中有个返回按钮 在点击返回按钮后回到主窗体上 子窗体关闭-CSDN论坛

    来源网址: http://bbs.csdn.net/topics/390295380

    1.ShowDialog();

    2.开启线程关闭窗体打开另一窗体

    C# code

     

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

      public Form form;

      public void OpenChildForm()

      {

         Thread thread = new Thread(showform);

         thread.IsBackground = false;

         thread.SetApartmentState(ApartmentState.STA);

         thread.Start();

       }

       void showform()

       {

         Application.Run(form);

       }

     form =new 你的窗体();

     OpenChildForm();

     this.Close();

     

    子窗体传值回主窗体显示

     

     

    展开全文
  • 关闭窗体 在c#中退出WinForm程序包括有很多...只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出; 2.Application.Exit();强制所有消息中止,退出所有的...
  • Winform关闭窗口

    2013-09-06 17:49:26
     只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出; 2.Application.Exit(); 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法...
  • 最近要做一个对接WebForm的柜台操作Winform的程序,在登陆窗体时因为要传递用户一些信息到后面窗体,所以试了下这个方法。 在入口方法中逻辑如下: Code///<summary>///应用程序的主入口点。///</...
  • Winform 当前窗口点击按钮后,隐藏当前窗口,打开新的窗口。 如在新的窗口关闭时,再次打开可能会导致异常。所以要对其进行释放。 private void button1_Click(object sender, EventArgs e) { Form2 ...
  • /* 关闭一个消息窗体 ,title是窗体的名称*/ public static void KillMessageBox(string title) { //按照MessageBox的标题,找到MessageBox的窗口 IntPtr ptr = FindWindow(null, title); ...
  • From窗体关闭事件,避免和FormClosed混淆。 1 private void Form1_FormClosing(object sender, FormClosingEventArgs e) 2 { 3 DialogResult dr = MessageBox.Show("系统提示", "是否退出?", Message...
  • 医药遇到一个bug就是 关闭窗口 弹出后点击取消 程序还是结束了 于是百度了一下代码 粘贴上就可以取消 ,然后继续对程序的操作。 分享一下 public FrmMain(string s, string w) { Initia...
  • th.IsBackground = true解决线程问题,意思就是把线程设置为后台线程,感兴趣的朋友可以多了解下,如何有什么妙招还请多多指导哈
  • 解决winform当前打开的窗体关闭问题 1、关闭所有打开的窗体: ...2、关闭当前打开的某一个窗体 foreach(var item in application.openform) { if(item="form1") { item.closed; } } 转载于:https://ww...
  • 请教各位大神,C# WinForm MDI 窗体,在关闭窗体时,会触发什么事件呀? 我想在子窗体关闭前弹出一个选择框,让用户确认关闭。 我试过子窗体的FormClosing事件,调试的时候并不会触发... 请教大神们,这个功能该...
  • C# WinForm关闭窗体确认

    2012-09-24 16:57:00
    窗体的Closing事件中加入确认代码。   private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("您确认退出吗?", "www.cnblogs.com/jihua"...
  • 只是在关闭窗体后,资源管理器里,一大堆进程。。。 当时,客户急着用,小测了下,导出数据无误,进程就先不管了。 后来自己去查资料,发现 只要在线程那里设置个属性 Thread th = new Thread(Excu...
  • C# winform窗体调用父窗体函数实现关闭窗体打开另一个窗体;在父窗体分From1内嵌一个panel1,在panel1里载入From2,点击在子窗体From2中的按钮,清除panel1里的From2,新载入From3,点击在子窗体From3中的按钮...
  • private void Btn_OK_Click(object sender, EventArgs e)... //打开另一个窗口的同时关闭当前窗口  Thread th = new Thread(delegate () { new Frm_Main().ShowDialog(); });  th.Start();  this.Close(); } ...
  • winform中如果每次打开的窗体都是通过new出来的,发现几次过后就会出现提示”内存不足“问题,那么在关闭窗体的时候怎么处理可以及时释放内存?dispose方法可能也无法解决这个问题。我们可以每次在关闭窗体的时候...
  • winForm窗体关闭按钮实现托盘后台运行(类似QQ托盘区运行) ,实现webbrowser打开网页
  • 调用this.Close();后监听Browser_FormClosed加作处理 this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Browser_FormClosed); private void Browser_FormClosed(object sender, ...
  • 窗体Form1 子窗体Form2 Form1中有一个datagridview控件和一添加按钮,Form2中有一个Text控件和一个保存按钮 要求点击Form1窗体上的添加按钮,弹出Form2,再text里面输入内容,点击保存自动关闭Form2,刷新Form1中...
  • winform自动隐藏窗体

    2013-01-06 20:45:32
    winform自动隐藏窗体,类似QQ的顶置自动隐藏窗体的效果
  • 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出; 2.Application.Exit(); 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净...
  • Winform窗体关闭程序的方法总结

    千次阅读 2019-06-07 12:53:24
    Winform窗体关闭程序的方法总结 在做Winform应用程序的时候,常常会用到子窗体关闭整个程序。 下面是我积累的一些方法: System.Environment.Exit(0): 解释:强制该程序的主线程,不管有无子线程正在执行方法,...
  • 讲两个遇到的问题。 第一个问题:通过登陆窗口(Login.cs)正确验证后将进入主窗体(Main.cs),这个时候如何处理这个登陆...然后进入主窗体,在关闭窗体时调用Application.Exit();连同这个隐藏的登陆窗体一起关闭。 
  • 1. 点击窗口关闭按钮来关闭form 2. 点击一个button(或其他控件)来关闭form private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("Exit?", "", MessageBoxButtons....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,308
精华内容 2,123
关键字:

winform关闭当前窗体