可能有些朋友只知道*.Show()
而不知道*.ShowDialog()
就讓我這位新手「programmer」來為大家介紹一下。
簡單來說*.Show()
和*.ShowDialog()
的分別是在性質上:
*.Show()
是用在兩個沒有太大關係的視窗上,例如檔案總管中資料夾的右鍵選單中的「在新視窗開啟」所開啟的視窗,兩個視窗可以各自操作;- 而
*.ShowDialog()
則會令開啟新視窗的父視窗鎖定直至新視窗被關閉為止,例如選擇檔案的對話方塊,必須要等待選擇完成才可以操作原本的視窗。
使用心得
在我懂得使用*.ShowDialog()
之前,我是須要使用三行代碼來達成和*.ShowDialog()
一樣的功能,但缺少了*.ShowDialog()
的閃動效果:
'MainForm.vb
Private Sub Button_Click(sender As Object, e As EventArgs) Handles Button.Click
NewForm.Show()
Me.Enabled = False
End Sub
'NewForm.vb
Private Sub NewForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
MainForm.Enabled = True
End Sub
當然,在懂得使用*.ShowDialog()
之後,我只須一行代碼就完成了:
'MainForm.vb
Private Sub SettingButton_Click(sender As Object, e As EventArgs) Handles SettingButton.Click
NewForm.ShowDialog()
End Sub