我的意图是将一个窗体作为一个控件,在主窗体显示,在另一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之后肯定会空的么,为什么呢?求解。