winform-为什么ShowDialog子窗体关闭后还能访问里面的属性?

问题描述

为什么ShowDialog子窗体关闭后还能访问里面的属性?
        MyTest test = new MyTest();
        test.ShowDialog();
        test = null;
        MessageBox.Show("hello My name is " + test.Name);

                    为什么MyTest窗体关闭了,还能访问里面的属性值test.Name?

解决方案

本来就应该这样。

要不怎么获取对话框用户的输入呢?

你看系统对话框也是这样:
OpenFileDialog ofn = new OpenFileDialog();
if (ofn.ShowDialog() == DialogResult.OK)
{
string filename = ofn.FileName; //获得用户选择的文件名
}

解决方案二:

如果你非要从语法的角度来说,那就是关闭窗口并不会销毁窗口对应的类。

解决方案三:

关闭并没有真正的销毁,所以可以访问

解决方案四:

OpenFileDialog ofn = new OpenFileDialog();
if (ofn.ShowDialog() == DialogResult.OK)
{
string filename = ofn.FileName; //获得用户选择的文件名

解决方案五:

因为窗口没用真正的关闭,要destroy的之后就没数据了。

解决方案六:

还没调用dispose函数呢

时间: 2024-08-07 03:37:06

winform-为什么ShowDialog子窗体关闭后还能访问里面的属性?的相关文章

请教asp.net子窗体关闭后刷新父页面的UpdatePanel

问题描述 子窗体关闭后刷新父页面的UpdatePanel 解决方案 解决方案二:刷新UpdatePanel做什么?解决方案三:刷新父页面的UpdatePanel的内容解决方案四:UpdatePanel里有button么解决方案五:没有.你有什么方法.请指教解决方案六:那你就在UpdatePanel里放一个button,然后子窗体关闭的时候通过dom操作让button被点击,从而达到触发UpdatePanel刷新.解决方案七:试过了,不可以解决方案八:不可以?你怎么试的

c#-C# 窗体关闭后 进程也关闭了 但是线程还在运行 怎么办

问题描述 C# 窗体关闭后 进程也关闭了 但是线程还在运行 怎么办 Thread TheOpenPrint; TheOpenPrint = new Thread(new ThreadStart(OpenPrin)); TheOpenPrint.IsBackground = true; //申明的地方 private void CloseThread() { System.Environment.Exit(0);//退出全部线程 System.Diagnostics.Process.GetCurr

子窗体关闭父窗体刷新-关于子窗体关闭同时刷新父窗体的问题

问题描述 关于子窗体关闭同时刷新父窗体的问题 亲,是这样的,我现在在实习,最近在练习做一个C#连接Oracle然后对数据库进行增删改查的小程序,有一个问题,我简单说一下,就是我的父窗体有个dgv来显示数据库数据,然后有个增加数据Button点一下,出现子窗体,然后子窗体上有姓名,号码输入框,还有一个确定输入键.我想实现按一下确定输入键输入键,然后子窗体自动关闭,父窗体的dgv内容自动刷新,我百度了个方法,很管用,是这样的.//你在主窗体调用子窗体事件里面写: 子窗体f = new 子窗体();

C#父窗体监听子窗体关闭事件

问题描述 父窗体打开一个子窗体同时改变父窗体大小已经会写了,结果关闭一个子窗体后如何后面还有子窗体就不会改变父窗体大小,用foreach语句让父窗体读取当前激活的子窗体又不行,怎么改 解决方案 解决方案二:打开的时候用变量存储,解决方案三:这问题问得完全看不懂解决方案四:我有使用bool型变量判断开没开,但是我是需要在子窗体关闭事件后触发父窗体重新用foreach语句找到当前被激活(就是已经被打开的最顶层子窗体)的其余子窗体的事件,然后根据是哪个子窗体被激活调整父窗体大小,结果foreach语句

c#- (C#中有一个公共的窗体 我需要这个公共窗体关闭后跳转到刚才把公共窗体打开的那个窗体)

问题描述 (C#中有一个公共的窗体 我需要这个公共窗体关闭后跳转到刚才把公共窗体打开的那个窗体) (C#中有一个公共的窗体 我需要这个公共窗体关闭后跳转到刚才把公共窗体打开的那个窗体) 谢谢大家了 新手求指教 在线等 解决方案 主窗口写 this.Hide(); Form2 f = new Form2(); //公共子窗体 f.ShowDialog(); this.Show();

C#,winform,ShowDialog,子窗体向父窗体传值_实用技巧

调用showdialog方法后,调用代码被暂停执行,等到调用showdialog方法的窗体关系后再继续执行.而且窗体可以返回一个dialogresult值,他描述了窗体关闭的原因,例如OK,Cancel,yes,no等.为了让窗体返回一个dialogresult,必须设置窗体的dialogresult值,或者在窗体的一个按钮上设置dialogresult属性. 例子: 下面是子窗体代码,要求输入phone,然后会返回给父窗体. using System; using System.Collect

MDI 子窗体关闭不了

问题描述 同时打开两个MDI子窗体,然后关闭子窗体,程序不停的闪,关不了.停止响应.跟踪代码是关闭窗体时程序自动调用this.Dispose()方法出现这种现象.只打开一个MDI子窗体时,关闭没任何问题.执行this.Dispose()时也不出错,也不退出.我直接用this.Close()方法关闭窗体的.请高手分析一下下. 解决方案 解决方案二:搂主应该贴出相关代码才好解决方案三:是不是关闭的时候,触发了死循环啊解决方案四:看代码说法,否则...原因蛮多的.....可能是因为你进程太多了,引起C

winfom:当我子窗体关闭时 传个datatable对象给父窗体

问题描述 如题因为我在子窗体那个datatable是一个临时表.只是占时用来保存的. 解决方案 解决方案二:2008年之前的贴子暂时不允许回复.

子窗口关闭后父窗口数据更新问题

问题描述 今天写了个简单的通讯录小应用程序,新增和编辑按钮会弹出一个窗口供添加联系人或编辑用的,但是在提交后,之前那个主窗口数据没有更新过来,需要点击查询等按钮执行一次更新才可以.这个BUG怎么修正,用手机敲的,希望得到解答,谢谢!下面是局部代码:Main.javamodify(eve){OperationDialog od = new OperationDialog(this);od.setModal(true);od.initData(aid);od.setVisible(true);ini