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