A、B、Cの3つの形式があります。
ボタンがクリックされると、AはBを表示します。同様に、BはCを表示します。どちらもShowDialog()メソッドを使用します。
ただし、フォームCでHide()メソッド(Button Clickイベント内)を使用してフォームを閉じると、フォームBも閉じます。
なぜこれでしょうか?私が見る限り、これを行うべきではありません。私は確かにそれを行うように指示するコードを書きませんでした。
コードは次のとおりです。
' from Form "A" (MainForm)
Private Sub OrdersDataGridView_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles OrdersDataGridView.CellDoubleClick
ShowViewOrderForm(sender)
End Sub
Private Sub ShowViewOrderForm(ByVal CurrentDGV As DataGridView)
If Not CurrentDGV Is Nothing Then
Dim f As New ViewOrderForm
f.SetOrderNo(CurrentDGV.CurrentRow().Cells().Item(0).Value)
f.SetDeliveryServiceType(CurrentDGV.CurrentRow().Cells().Item(5).Value)
f.ShowDialog()
End If
End Sub
' from Form "B" (ViewOrderForm)
Private Sub IssueOrderButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IssueOrderButton.Click
Dim f As New IssueForm
f.SetOrderNo(ThisOrderNo)
f.ShowDialog()
End Sub
' from Form "C" (IssueForm)
Private Sub CloseButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CloseButton.Click
Me.Hide()
End Sub
更新:私はばかです。既存の[閉じる]ボタンからコピーして貼り付けたため、ボタンがオンDialogResult
に設定されていましたが、プロパティが設定されていることに気づきませんでした。Cancel
とにかく皆さんの提案をありがとう!