我有一个父表单,称为表单A.这会创建一个子表单,比如称为表单B.
对于A,订阅表格B的FormClosing事件并根据此操作进行更改。
我想知道的是,如何检测表单B中的哪个控件导致FormClosing事件触发。我希望代码在按下“X”或“取消”按钮时表现一种,如果按下确定按钮则表示另一种方式。
代码如下所示:
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
任何想法/建议?
答案 0 :(得分:0)
通常方法的参数会告诉你一切。调查
Private Sub btnAddSectionsRefresh(sender As Object, e As FormClosingEventArgs)
您应该可以通过查看sender
参数来确定是谁造成的。
答案 1 :(得分:0)
您可以使用DialogResult
属性来确定表单B的关闭方式。
答案 2 :(得分:0)
试试此代码
Private Sub btnAddSectionsRefresh(ByVal sender As Object, ByVal e As FormClosingEventArgs)
if Me.ActiveControl.Text = "X" then
.....
......
elseif Me.ActiveControl.Text="Cancel"
.....
.....
elseif Me.ActiveControl.Text ="Ok"
.....
...
End Sub