0

フォームAと呼ばれる親フォームがあります。これにより、フォームBと呼ばれる子フォームが作成されます。

A はフォーム B の FormClosing イベントをサブスクライブし、このアクションに基づいて変更を行います。

私が知りたいのは、フォーム B のどのコントロールが FormClosing イベントをトリガーしたかを検出する方法です。「X」または「キャンセル」ボタンが押された場合と「OK」ボタンが押された場合に別の方法でコードが動作するようにします。

コードは次のようになります。

Private Sub btnAddSections_Click(sender As Object, e As System.EventArgs) Handles btnAddSections.Click
    Cursor = Cursors.WaitCursor
    Dim frm As New dlgAddPartsMartixSection(m_intMatrixId)
    AddHandler frm.FormClosing, AddressOf btnAddSectionsRefresh
    frm.Show()
    Cursor = Cursors.Default
End Sub 

 Private Sub btnAddSectionsRefresh(sender As Object, e As FormClosingEventArgs)
    dgvParts.DataSource = Nothing
    btnAddParts.Enabled = False
    dgvParts.Refresh()
    Me.LoadPartMatrices()
    dgvMatrices.Rows(m_intMatrixLocationId).Selected = True
    Me.LoadPartSections(m_intMatrixId)
End Sub

アイデア/提案はありますか?

4

3 に答える 3

0

通常、メソッドへの引数はすべてを教えてくれます。調査する

Private Sub btnAddSectionsRefresh(sender As Object, e As FormClosingEventArgs)

senderパラメータをチェックアウトすることで、誰がこれを引き起こしたのかを特定できるはずです。

于 2013-04-08T08:28:36.090 に答える
0

プロパティを使用して、DialogResultフォーム B がどのように閉じられたかを判断できます。

于 2013-04-08T08:28:57.453 に答える