[英]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.