これらの違いは何ですか?
A.)
Using xForm as New frmCall()
xForm.ShowDialog()
End Using
B.)
Dim xForm as new frmCall()
xForm.ShowDialog()
xForm.Dispose
C.)
frmCall.Show()
それらはすべて形を示しています、そして私はそれが違いを持っていることを知っています。それは何ですか?
これらの違いは何ですか?
A.)
Using xForm as New frmCall()
xForm.ShowDialog()
End Using
B.)
Dim xForm as new frmCall()
xForm.ShowDialog()
xForm.Dispose
C.)
frmCall.Show()
それらはすべて形を示しています、そして私はそれが違いを持っていることを知っています。それは何ですか?
Dispose()(Reedでカバーされていた)を除けば、Show()とShowDialog()は大きな違いです。
ShowDialog()はブロッキング呼び出しです。つまり、画面にポップアップしたダイアログが閉じられるまで、メソッドは終了しません。ダイアログはアプリケーションの上にあり、下にある他のフォームと対話することを防ぎます。これはすべて「モーダル」動作と呼ばれます。
Show()はブロックしません。このメソッドはフォームを表示してから続行します。この方法でいくつかのフォームを表示し、制限なしでそれらをクリック/切り替えることができます。
最初の2つの例は非常に似ています。
主な違いは、最初のケースでは、ShowDialog内で例外が発生した場合でも、Dispose呼び出しが発生することです。「B」では、ShowDialogで例外を発生させた場合、Dispose呼び出しは発生しません。
最後のオプションは、frmCallインスタンスでDisposeを呼び出すことはありません。