c# – 保存时不更新RichTextBox内容
发布时间:2020-12-15 17:24:31 所属栏目:百科 来源:网络整理
导读:我的表单中有一个列表框控件,其中包含文件夹中特定类型文件的路径. 在项目上双击我将动态添加页面到选项卡控件并将文件的内容加载到富文本框的对象.现在我想编辑内容并再次保存.但是当我打开保存的文件时,编辑的内容没有保存,它只有早期的内容,当加载文件到
我的表单中有一个列表框控件,其中包含文件夹中特定类型文件的路径.
在项目上双击我将动态添加页面到选项卡控件并将文件的内容加载到富文本框的对象.现在我想编辑内容并再次保存.但是当我打开保存的文件时,编辑的内容没有保存,它只有早期的内容,当加载文件到富文本框时.如何更新富文本框对象文本并保存. private void lstErrorList_MouseDoubleClick(object sender,MouseEventArgs e) { ArrayList errorType = new ArrayList(); RichTextBox myrich = new RichTextBox(); string[] list; TabPage selectedTab; if (lstErrorList.Items.Count > 0) { string error = lstErrorList.SelectedItem.ToString(); int result = error.LastIndexOf(''); string filename = error.Substring(result + 1,error.Length - (result + 1)); list = error.Split(new char[] { 't' }); int pagecount; TabPage tp = new TabPage(); pagecount = this.tabControl1.TabPages.Count; bool found = false; foreach (TabPage tab in tabControl1.TabPages) { if (filename.Equals(tab.Name)) { tabControl1.SelectedTab = tab; found = true; break; } } if (!found) { tabControl1.TabPages.Add(filename,filename); tabControl1.SelectedTab = tabControl1.TabPages[tabControl1.TabPages.Count - 1]; int i = tabControl1.TabPages.Count; myrich.Height = this.tabControl1.Height - 30; myrich.Width = this.tabControl1.Width - 10; myrich.Anchor = (AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom); tabControl1.TabPages[tabControl1.TabPages.Count - 1].Controls.Add(myrich); string path = list[7]; objReader = new System.IO.StreamReader(path); myrich.Text = objReader.ReadToEnd(); objReader.Close(); } int val = 0; string val1 = list[3]; string replacement = Regex.Replace(val1,@"t|n|r|[a-zA-Z]",""); val = Convert.ToInt32(replacement); foreach (Control ct in tabControl1.SelectedTab.Controls) { if (ct is RichTextBox) { RichTextBox x = (RichTextBox)ct; x.Select(val,wordToFind.Length); x.SelectionBackColor = Color.Wheat; x.Focus(); break; } } } } private void mnuValidate_Click(object sender,EventArgs e) { myrich.Refresh(); myrich.Update(); foreach (TabPage page in tabControl1.TabPages) { string Saved_File = ""; saveFD.Title = "Save the file"; saveFD.FileName = ChosenFileName; saveFD.Filter = "Text File|*.txt|Html File|*.html|Xhtml File|*.xhtml|XML File|*.xml"; Saved_File = saveFD.FileName; foreach (Control ct in tabControl1.SelectedTab.Controls) { if (ct is RichTextBox) { int x = tabControl1.SelectedTab.Controls.IndexOf(ct); MessageBox.Show(x.ToString()); ((RichTextBox)page.Controls[x]).SaveFile(Saved_File,RichTextBoxStreamType.RichText); } } this.tabControl1.TabPages.Remove(page); } lstErrorList.Items.Clear(); if (filePathlist.Count == 0) { MessageBox.Show("No input files found,Please upload files and validate again","Warning",MessageBoxButtons.OK,MessageBoxIcon.Information); } else { if (HTML_QC_MultipleFiles.Errors.Checkeditemlist.Count == 0) { MessageBox.Show("Please select the error type and validate again","Information",MessageBoxIcon.Information); } else { if (singlefile == true) { Validate(); } else { bool errorFound = false; string[] words; foreach (string file in filePathlist) { int lineno,index; objReader = new System.IO.StreamReader(file); myrich.Clear(); myrich.Height = this.tabControl1.Height - 30; myrich.Width = this.tabControl1.Width - 10; myrich.Anchor = (AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom); myrich.Text = objReader.ReadToEnd(); ChosenFileName = file; Validate(); objReader.Close(); } } } } } 解决方法
我认为问题可能是你的代码要求保存文件名,然后遍历控件集,将每个文件保存到同一个文件中.如果你有两个富文本框,那么保存第一个文本框可能会被第二个覆盖.
其他需要注意的事项: >保存期间是否有例外? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |