Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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
在保存到XML文件时,需要获取要显示的无模式表单_Xml_Vb.net_Winforms - Fatal编程技术网

在保存到XML文件时,需要获取要显示的无模式表单

在保存到XML文件时,需要获取要显示的无模式表单,xml,vb.net,winforms,Xml,Vb.net,Winforms,所以我有一个保存到的XML文件。无论出于什么原因,我都无法在储蓄时显示我的“快乐”表格。它让人感觉我的应用程序已经冻结 我正在尝试PleaseWait.Show()和应用程序.DoEvents(),但运气不好 有什么想法吗 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles cmdSaveNotes.Click PleaseWait.Show() Application.DoEvents()

所以我有一个保存到的XML文件。无论出于什么原因,我都无法在储蓄时显示我的“快乐”表格。它让人感觉我的应用程序已经冻结

我正在尝试PleaseWait.Show()和应用程序.DoEvents(),但运气不好

有什么想法吗

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles cmdSaveNotes.Click
    PleaseWait.Show()
    Application.DoEvents()
    Dim strTime As String
    strTime = Now.ToString
    Dim FileName = Application.StartupPath & "\DATA\" & lblFILEName.Text

    Try

        Dim xmlSIPData As New XmlDocument
        Dim nodeRoot, nodeTroubleInfo, nodeAdditional, nodeDateTimeSaved As XmlNode
        xmlSIPData.Load(FileName)
        nodeRoot = xmlSIPData.SelectSingleNode("//DATA")
        nodeTroubleInfo = nodeRoot.SelectSingleNode("//Info")
        nodeTroubleInfo.InnerText = txtDetails.Text
        nodeAdditional = nodeRoot.SelectSingleNode("//Additional_Notes")
        nodeAdditional.InnerText = txtAdditionalNOTES.Text
        nodeDateTimeSaved = nodeRoot.SelectSingleNode("//DateTimeSaved")
        nodeDateTimeSaved.InnerText = strTime
        xmlSIPData.Save(FileName)

        MsgBox("Note Saved as: " & FileName, MsgBoxStyle.Information, "Additional notes saved successfully.")
    Catch ex As Exception
        MsgBox("Error processing note save. The error was: " & vbCrLf & Err.Description, MsgBoxStyle.Exclamation, "Error saving information to file.")
        Exit Sub
    End Try
    PleaseWait.Hide()
End Sub

如果不需要,确实不需要显示
plessewait
表单。如果你真的想要,考虑使用显示对话框显示<代码> PleaseWait <代码>,然后在代码< PleaseWait > <代码>表单中运行代码。

或者,您可以使用BackgroundWorker仅禁用保存按钮,直到保存操作完成:

Private子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击
Dim bgw作为新的后台工作人员
AddHandler bgw.DoWork,bgw_DoWork的地址
AddHandler bgw.RunWorkerCompleted,bgw_RunWorkerCompleted的地址
按钮1.已启用=错误
bgw.RunWorkerAsync()
端接头
私有子bgw_DoWork(发送方作为对象,e作为DoWorkEventArgs)
'运行您的代码。。。
e、 结果=“已保存注释。”
端接头
私有子bgw_RunWorkerCompleted(发送方作为对象,e作为RunWorkerCompletedEventArgs)
按钮1.已启用=真
MessageBox.Show(例如Result.ToString)
端接头
另一种方法是使用新的Async和Await方法:

Private Async Sub Button2\u单击(发送方作为对象,e作为事件参数)处理按钮2。单击
按钮2.Enabled=False
Dim结果为字符串=等待保存文件()
按钮2.Enabled=True
MessageBox.Show(结果)
端接头
私有异步函数SaveFile()作为任务(字符串)
等待任务。运行(Sub()
'运行您的代码。。。
末端接头)
返回“已保存备忘”
端函数

它不仅让人感觉到它被冻结了,它还被冻结了。如果线程让您感到害怕,那么将Application.DoEvents()替换为plesewait.Update()。Update()正在生成我需要的结果。谢谢大家!感谢所有的回复。