C#如何打开同一个已经释放的窗体?
C#怎么打开同一个已经释放的窗体??
都知道当一个子窗体被关闭(Close)后,在用Show()显示出来则会提示无法访问已释放的对象(子窗体名),现在怎么能做到在父窗体中可以重新打开这个以释放的窗体?
------解决方案--------------------
把那个窗体变量做成全局的,Close时不要Dispose
------解决方案--------------------
------解决方案--------------------
你可以试试重新创建实例啊,先判断下窗体是否已经释放
先将窗体定义成类的成员
------解决方案--------------------
关闭的时候用Hide()
------解决方案--------------------
是不是Form2里在窗体关闭事件里写什么东西了?
------解决方案--------------------
释放了又要再显示,那就只有new一个了,那样的话,控件状态什么的都丢了
------解决方案--------------------
都知道当一个子窗体被关闭(Close)后,在用Show()显示出来则会提示无法访问已释放的对象(子窗体名),现在怎么能做到在父窗体中可以重新打开这个以释放的窗体?
c#
窗体
------解决方案--------------------
把那个窗体变量做成全局的,Close时不要Dispose
------解决方案--------------------
private ShowWindow _ShowWindow;
public Window5()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(Window5_Loaded);
this.Unloaded += new RoutedEventHandler(Window5_Unloaded);
}
void Window5_Unloaded(object sender, RoutedEventArgs e)
{
if (_ShowWindow!=null)
{
_ShowWindow = null;
}
}
void BtnShowWindow(object sender,RoutedEventArgs e)
{
if (_ShowWindow == null)
{
_ShowWindow = new ShowWindow();
}
_ShowWindow.Show();
}
------解决方案--------------------
你可以试试重新创建实例啊,先判断下窗体是否已经释放
先将窗体定义成类的成员
Fomr1 form1;//申明为类成员
//下列代码放在需要打开窗体那
if (form1 == null
------解决方案--------------------
form1 .IsDisposed )//先判断窗体实例是否存在
{
form1 = new Form1();
form1.Show();
}
else
{
form1.WindowState = FormWindowState.Normal;
form1.Show();
}
------解决方案--------------------
关闭的时候用Hide()
------解决方案--------------------
是不是Form2里在窗体关闭事件里写什么东西了?
------解决方案--------------------
释放了又要再显示,那就只有new一个了,那样的话,控件状态什么的都丢了
------解决方案--------------------