1

これらの違いは何ですか?

A.)

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

B.)

 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

最初の2つの例は非常に似ています。

主な違いは、最初のケースでは、ShowDialog内で例外が発生した場合でも、Dispose呼び出しが発生することです。「B」では、ShowDialogで例外を発生させた場合、Dispose呼び出しは発生しません。

最後のオプションは、frmCallインスタンスでDisposeを呼び出すことはありません。

于 2012-04-18T09:00:18.453 に答える