我的意图是将一个窗体作为一个控件,在主窗体显示,在另一Timer线程中关闭,关闭之后为何窗体对象还是不为null代码如下:
//查询
if (w == null)
{
w = new wait();
w.LabelText = "正在查询,请稍候";
w.TopLevel = false; //将子窗体作为控件显示
w.TopMost = true;
w.BringToFront();
w.Location = new System.Drawing.Point(dataGridView.Width / 2 - dataGridView.Location.X - w.Width / 2, dataGridView.Height / 2 - dataGridView.Location.Y);//将子窗体显示在主窗体中间位置,
dataGridView.Controls.Add(w);//将子窗体的父容器设置为datagridview
w.Show();
}
/// <summary>
/// 关闭进度窗
/// </summary>
void closewait()
{
if (w != null)
{
w.Close();
w.Dispose();
this.Focus();
}
}第一次我实例化wait对象后,在Timer里面设置超时事件,时间到了调用closewait关闭窗体,当第二次我想显示wait的时候,if(w==null) 显示w不为null,本来Colse之后肯定会空的么,为什么呢?求解。
//查询
if (w == null)
{
w = new wait();
w.LabelText = "正在查询,请稍候";
w.TopLevel = false; //将子窗体作为控件显示
w.TopMost = true;
w.BringToFront();
w.Location = new System.Drawing.Point(dataGridView.Width / 2 - dataGridView.Location.X - w.Width / 2, dataGridView.Height / 2 - dataGridView.Location.Y);//将子窗体显示在主窗体中间位置,
dataGridView.Controls.Add(w);//将子窗体的父容器设置为datagridview
w.Show();
}
/// <summary>
/// 关闭进度窗
/// </summary>
void closewait()
{
if (w != null)
{
w.Close();
w.Dispose();
this.Focus();
}
}第一次我实例化wait对象后,在Timer里面设置超时事件,时间到了调用closewait关闭窗体,当第二次我想显示wait的时候,if(w==null) 显示w不为null,本来Colse之后肯定会空的么,为什么呢?求解。
解决方案 »
- 一个动态的字符串,求有规律动地对换字符串的位置。
- 请问opensomefile()是什么函数 为什么我没找到?
- 怎样把N条结果依次写入listbox呢
- 类似这样的XML通过什么方式建立最方便
- 注意:发起一个活动-通过PetShop4.0学习VS2005,有响应的吗?
- 问个wow宏的问题。和C#无关。但是我只来这个组。希望帮主留情。谢谢了
- C#中如何制作安装程序(要有选择安装路径,打包Oracle数据库,IIS虚拟路径为选定安装的路径)
- 请教生成多个主从窗体用什么最快?
- datagrid简单多表头(很容易得分的噢)
- C# reportViewer关闭内存不能释放 求帮助
- win7 32位旗舰版 安装VS2012出现了问题
- 新手 关于类属性
{
}