C# 更改文件中的某些文本后,如何保存/更新文件?

C# 更改文件中的某些文本后,如何保存/更新文件?,c#,winforms,C#,Winforms,在SlectedIndexChanged事件中,我读取文件内容并将内容添加到richTextBox void listView_SelectedIndexChanged(object sender, EventArgs e) { if (ListViewCostumControl.SelectedItems.Count > 0) { results = new List<int>()

在SlectedIndexChanged事件中,我读取文件内容并将内容添加到richTextBox

void listView_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ListViewCostumControl.SelectedItems.Count > 0)
            {
                results = new List<int>();
                richTextBox1.Text = File.ReadAllText(ListViewCostumControl.Items[ListViewCostumControl.SelectedIndices[0]].Text);
                FileInfo fi = new FileInfo(ListViewCostumControl.Items[ListViewCostumControl.SelectedIndices[0]].Text);
                label17.Text = ExtensionMethods.ToFileSize(fi.Length);
                label17.Visible = true;
                label26.Text = fi.Name;
                label26.Visible = true;
                button5.Enabled = true;
                filePath = Path.GetDirectoryName(fi.FullName);
                string word = textBox1.Text;
                string[] test = word.Split(new string[] { ",," }, StringSplitOptions.None);
                foreach (string myword in test)
                {
                    HighlightPhrase(richTextBox1, myword, Color.Yellow);
                    label16.Text = results.Count.ToString();
                    label16.Visible = true;
                    if (results.Count > 0)
                    {
                        numericUpDown1.Maximum = results.Count;
                        numericUpDown1.Enabled = true;
                        richTextBox1.SelectionStart = results[(int)numericUpDown1.Value - 1];
                        richTextBox1.ScrollToCaret();
                    }
                }
            }
        }
问题是,一旦我读取SelectedIndexChanged事件中的文本并将其添加到richTextBox1,它就会进入richTextBox1\u TextChanged事件,并使button6启用为真


但我希望只有当我用文本更改了某些内容,而不是文本刚刚添加到richTextBox时,才将button6启用设置为true。

请,1)将问题一分为二;2) 请准确描述您试图实现的目标,以找到此问题的解决方案。private void richTextBox1_KeyDown(object sender,KeyEventArgs e){if(richTextBox1.ReadOnly==false)button6.Enabled=true;}现在我需要在richTextBox1中键入内容时找到如何更新硬盘上的文件。例如,如果我将Test.txt的内容读到richTextBox1,然后在richTextBox1中键入类似Hello World的内容,然后单击按钮6。现在我想把文本helloworld添加到硬盘上的Test.txt文件中。与更新硬盘上的文件类似。1)在表单级别定义一个标志,以显示您正在初始化富文本框。2) 在将文件内容加载到富文本框之前,在
SelectedIndexChanged
中,将标志设置为true并禁用按钮,并在将文件内容分配到富文本框之后,再次将initializing设置为false。3) 在富文本框的
TextChanged
事件中,如果按钮未初始化,只需启用按钮即可。请,1)将问题一分为二;2) 请准确描述您试图实现的目标,以找到此问题的解决方案。private void richTextBox1_KeyDown(object sender,KeyEventArgs e){if(richTextBox1.ReadOnly==false)button6.Enabled=true;}现在我需要在richTextBox1中键入内容时找到如何更新硬盘上的文件。例如,如果我将Test.txt的内容读到richTextBox1,然后在richTextBox1中键入类似Hello World的内容,然后单击按钮6。现在我想把文本helloworld添加到硬盘上的Test.txt文件中。与更新硬盘上的文件类似。1)在表单级别定义一个标志,以显示您正在初始化富文本框。2) 在将文件内容加载到富文本框之前,在
SelectedIndexChanged
中,将标志设置为true并禁用按钮,并在将文件内容分配到富文本框之后,再次将initializing设置为false。3) 在富文本框的
TextChanged
事件中,如果按钮未初始化,只需启用按钮即可。
void listView_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ListViewCostumControl.SelectedItems.Count > 0)
            {
                results = new List<int>();
                richTextBox1.Text = File.ReadAllText(ListViewCostumControl.Items[ListViewCostumControl.SelectedIndices[0]].Text);
                FileInfo fi = new FileInfo(ListViewCostumControl.Items[ListViewCostumControl.SelectedIndices[0]].Text);
                label17.Text = ExtensionMethods.ToFileSize(fi.Length);
                label17.Visible = true;
                label26.Text = fi.Name;
                label26.Visible = true;
                button5.Enabled = true;
                filePath = Path.GetDirectoryName(fi.FullName);
                string word = textBox1.Text;
                string[] test = word.Split(new string[] { ",," }, StringSplitOptions.None);
                foreach (string myword in test)
                {
                    HighlightPhrase(richTextBox1, myword, Color.Yellow);
                    label16.Text = results.Count.ToString();
                    label16.Visible = true;
                    if (results.Count > 0)
                    {
                        numericUpDown1.Maximum = results.Count;
                        numericUpDown1.Enabled = true;
                        richTextBox1.SelectionStart = results[(int)numericUpDown1.Value - 1];
                        richTextBox1.ScrollToCaret();
                    }
                }
            }
        }