1

这些有什么区别?

一个。)

 Using xForm as New frmCall()
      xForm.ShowDialog()
 End Using

乙)

 Dim xForm as new frmCall()
 xForm.ShowDialog()
 xForm.Dispose

C。)

 frmCall.Show()

他们都在展示表格,我知道它有区别。它是什么?

4

2 回答 2

3

除了 Dispose()(Reed 介绍过)之外,Show() 和 ShowDialog() 是一个很大的区别。

ShowDialog() 是一个阻塞调用,这意味着方法不会退出,直到您刚刚在屏幕上弹出的对话框被解除。对话框位于您的应用程序之上,并阻止您与下面的其他表单进行交互。这一切都被称为“模态”行为。

Show() 不会阻塞。该方法将使表单可见,然后继续。您可以通过这种方式显示多个表单并在它们之间单击/切换,没有任何限制。

于 2012-04-18T13:38:35.640 回答
2

前两个例子非常相似。

主要区别在于,在第一种情况下,如果在 ShowDialog 中引发异常,Dispose 调用仍然会发生。在“B”中,如果您在 ShowDialog 中引发异常,则永远不会发生 Dispose 调用。

最后一个选项永远不会在 frmCall 实例上调用 Dispose。

于 2012-04-18T09:00:18.453 回答