我有一个RichTextBoxes的WinForm应用程序。 我想在文本框内容更改时将文本颜色更改为红色执行RichTextBox事件处理程序“textChanged”
并且我有一个按钮,单击此按钮时,文本颜色将重置为其默认颜色。
问题是,当我使用事件处理程序(TextChanged)来检测是否发生了内容更改时,它也会在重置颜色时触发。
更清楚,我举一个例子:
1文本框中变化 2-触发事件处理程序和文字颜色变为红色的内容。 3-单击按钮,然后文本再次黑色 4-当文本颜色改变时,事件处理程序再次触发并且颜色更改为红色。
所以,即使按钮被点击,颜色似乎总是红色。
我该如何处理这个问题?我需要仅检测内容的变化,而不是在颜色
这里是从代码的一块:
private void AHReg_TextChanged(object sender, EventArgs e)
{
AHReg.ForeColor = Color.Red;
}
private void RunButton_Click(object sender, EventArgs e)
{
resetControlColor(); //this function sets the text color to Black
}
如果所有文本框同时更改,换句话说,当所有框更改或所有框未更改时,此解决方案都很有用。但情况是他们中的一些(可能)会被更改,而另一些则不会,所以根据您的解决方案,我会为每个文本框创建一个变量。 – Rehab11
据我所知你可以添加行if(NeedToBeChanged)给每个TextChanged事件,而不是添加许多变量 –
哦,是的,你是对的 – Rehab11