C# 如何使用savefiledialog在进度条上显示进度?
我想在windows窗体中显示使用“SaveFileDialog”和“进度条”保存文件的进度。正在保存的文件是文本文件(rtf、txt等)。这是我用来保存文件的方法:C# 如何使用savefiledialog在进度条上显示进度?,c#,winforms,visual-studio,progress-bar,savefiledialog,C#,Winforms,Visual Studio,Progress Bar,Savefiledialog,我想在windows窗体中显示使用“SaveFileDialog”和“进度条”保存文件的进度。正在保存的文件是文本文件(rtf、txt等)。这是我用来保存文件的方法: private void Save() { if (TabControl.TabPages.Count != 0) { SaveFileDialog.FileName = TabControl.SelectedTab.Name; SaveF
private void Save()
{
if (TabControl.TabPages.Count != 0)
{
SaveFileDialog.FileName = TabControl.SelectedTab.Name;
SaveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); //default path
SaveFileDialog.Filter = "Rich Text Format|*.rtf";//Extensions
SaveFileDialog.Title = "Save";
if (SaveFileDialog.ShowDialog() == DialogResult.OK)
{
if (SaveFileDialog.FileName.Length > 0)
{
GetCurrentDocument.SaveFile(SaveFileDialog.FileName, RichTextBoxStreamType.RichText);//Stream Type for .rtf
}
}
else if (SaveFileDialog.ShowDialog() == DialogResult.Cancel)
{
StatusBar.Text = "Saving Cancelled."; //Makes sure it doesn't crash on cancel
}
}
else
{
StatusBar.Text = "Can't save. No tabs are detected.";
}
}
GetCurrentDocument如下所示:
private RichTextBox GetCurrentDocument
{
get
{
return
(RichTextBox)TabControl.SelectedTab.Controls["Body"];
}
}
因此,SaveFile()是:
RichTextBox.SaveFile方法:将RichTextBox的内容保存到文件中。
不知何故,我想在进度条上显示保存,或者至少在保存完成时(当文件位于最终位置时)显示一个通知。类的基尼是getcurrentdocument,而savefile方法是做什么的。 您是否可以使用BackgroundWorker保存文件并在ui中打开进度条,等待工作流程结束的信号
如果此解决方案不够,请给我写信。您需要一个进度条作为字幕样式,因为您不知道保存文件需要多长时间。
这完全取决于
SaveFile()
的功能。这是RichTextBox.SaveFile方法。除非你的RichTextBox包含大量文本,否则保存过程应该相对较短。如果确实需要很长时间,则您无法访问告诉您保存进度的枚举器。未知的长期操作将在这些情况下使用字幕进度。只需输入“StatusBar.Text=”保存完成。“;在保存文件行之后。