[英]Form.ShowDialog() Without Destroying Handle
我正在尝试使用Form.ShowDialog显示表单,如下所示:
var f = new Form();
if(f.ShowDialog() == DialogResult.OK)
{
...
}
...
if(f.ShowDialog() == DialogResult.OK)
{
...
}
问题是一旦返回对话框结果并关闭窗体,就会调用OnHandleDestroyed。
因此问题是:是否可以在不关闭表单的情况下使用ShowDialog()(而是将其隐藏),或者使用Show()和Hide()模态显示表单?
当您使用ShowDialog
显示表单时,关闭表单后, DestroyHandle
将被自动调用。
为了防止这种行为,您可以重写DestroyHandle
方法并编写自己的逻辑。
例
public class MyForm : Form
{
protected override void DestroyHandle()
{
if (!Modal || Disposing)
base.DestroyHandle();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.