Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF页。在sub运行后调用Unload_Wpf_Vb.net - Fatal编程技术网

WPF页。在sub运行后调用Unload

WPF页。在sub运行后调用Unload,wpf,vb.net,Wpf,Vb.net,在这种情况下,当用户更改对不同业务多业务会计的访问权限时,它会运行一个子系统,关闭所有打开的选项卡,并更改在编辑模式下仍保持打开状态的任何选项卡的状态 一切都运行得很好,选项卡关闭,然后加载新业务的ID 问题在于页面。卸载事件在整个sub运行后运行,因此,如果在编辑模式下有任何页面保持打开状态,则更新错误的DB 在完成代码的其余部分之前,是否有任何方法可以强制作为sub的一部分关闭的任何页面卸载运行 谢谢 从Pragmateek编辑重新注释 这是卸载事件的一个示例 Private Sub Web

在这种情况下,当用户更改对不同业务多业务会计的访问权限时,它会运行一个子系统,关闭所有打开的选项卡,并更改在编辑模式下仍保持打开状态的任何选项卡的状态

一切都运行得很好,选项卡关闭,然后加载新业务的ID

问题在于页面。卸载事件在整个sub运行后运行,因此,如果在编辑模式下有任何页面保持打开状态,则更新错误的DB

在完成代码的其余部分之前,是否有任何方法可以强制作为sub的一部分关闭的任何页面卸载运行

谢谢

从Pragmateek编辑重新注释

这是卸载事件的一个示例

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

。。当第一行代码解决问题时

每页都应保留数据库及其处理数据的副本或引用。