WPF页。在sub运行后调用Unload
在这种情况下,当用户更改对不同业务多业务会计的访问权限时,它会运行一个子系统,关闭所有打开的选项卡,并更改在编辑模式下仍保持打开状态的任何选项卡的状态 一切都运行得很好,选项卡关闭,然后加载新业务的ID 问题在于页面。卸载事件在整个sub运行后运行,因此,如果在编辑模式下有任何页面保持打开状态,则更新错误的DB 在完成代码的其余部分之前,是否有任何方法可以强制作为sub的一部分关闭的任何页面卸载运行 谢谢 从Pragmateek编辑重新注释 这是卸载事件的一个示例WPF页。在sub运行后调用Unload,wpf,vb.net,Wpf,Vb.net,在这种情况下,当用户更改对不同业务多业务会计的访问权限时,它会运行一个子系统,关闭所有打开的选项卡,并更改在编辑模式下仍保持打开状态的任何选项卡的状态 一切都运行得很好,选项卡关闭,然后加载新业务的ID 问题在于页面。卸载事件在整个sub运行后运行,因此,如果在编辑模式下有任何页面保持打开状态,则更新错误的DB 在完成代码的其余部分之前,是否有任何方法可以强制作为sub的一部分关闭的任何页面卸载运行 谢谢 从Pragmateek编辑重新注释 这是卸载事件的一个示例 Private Sub Web
Private Sub Website_WebPage_Page_Unloaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Unloaded
Try
Dim SaveUpdateButton As Button = Website_WebPage_Grid.FindName("WebsiteWebPage_SaveUpdateButton")
Dim vScrollViewer As ScrollViewer = Website_WebPage_Grid.FindName("WebsiteWebPage_ScrollViewer")
If NewRecord = True Then
RemoveHandler SaveUpdateButton.Click, AddressOf Website_WebPage_DB_Insert
Else
'Edited record
Dim EditButton As Button = Website_WebPage_Grid.FindName("WebsiteWebPage_EditButton")
Dim EditWebPageButton As Button = Website_WebPage_Grid.FindName("Website_WebPage_EditWebPageButton")
RemoveHandler EditButton.Click, AddressOf Website_WebPage_ToggleEditMode_Click
RemoveHandler vScrollViewer.MouseDoubleClick, AddressOf Website_WebPage_ToggleEditMode_Click
RemoveHandler Me.MouseDown, AddressOf Website_WebPage_MouseDown
RemoveHandler SaveUpdateButton.Click, AddressOf Website_WebPage_DB_Update
RemoveHandler EditWebPageButton.Click, AddressOf WebsiteWebPage_BrowseToClick
End If
If OpenForEdit = True Then
If DB_Functions_ReleaseDT("HOA3_Pages", Page_ID, "Page_ID") = False Then
EditForm_Error()
Else
OpenForEdit = False
End If
End If
Catch ex As Exception
EmailError(ex)
End Try
End Sub
如果选项卡处于编辑模式,OpenForEdit将为true,并将调用DB_函数_ReleaseDT
Public Function DB_Functions_ReleaseDT(ByVal TableName As String, ByVal FileID As Integer, ByVal PKey As String) As Boolean
Try
UpdateOpenForEdit(False, TableName)
vService = New Service1Client
strSQL = "UPDATE " & TableName & " SET Open_Editing = 0, Editing_Name = 'System' WHERE " & PKey & " = " & FileID
If vService.InsertDataHOA(strSQL, "3 DB_Functions 43", Current_HOA_ID) = False Then
Return False
Else
Return True
End If
Catch ex As Exception
EmailError(ex)
Return False
Finally
If Not vService Is Nothing Then
vService.Close()
vService = Nothing
End If
End Try
End Function
问题是卸载运行太晚,并且变量Current\u HOA\u ID已更改结果表明答案非常简单-sub运行了两次,因此添加
e.Handled = True
。。当第一行代码解决问题时每页都应保留数据库及其处理数据的副本或引用。