在保存到XML文件时,需要获取要显示的无模式表单
所以我有一个保存到的XML文件。无论出于什么原因,我都无法在储蓄时显示我的“快乐”表格。它让人感觉我的应用程序已经冻结 我正在尝试PleaseWait.Show()和应用程序.DoEvents(),但运气不好 有什么想法吗在保存到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()
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()正在生成我需要的结果。谢谢大家!感谢所有的回复。