gpt4 book ai didi

c# - 执行 RichTextBox 事件处理程序 "textChanged"

转载 作者:太空宇宙 更新时间:2023-11-03 21:36:05 27 4
gpt4 key购买 nike

我有一个包含一组 RichTextBox 的 winform 应用程序。我想在文本框内容更改时将文本颜色更改为红色

我有一个按钮,单击此按钮时,文本颜色将重置为其默认颜色。

问题是,当我使用事件处理程序 (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
}

最佳答案

有几种方法可以给这只猫剥皮。您可以跟踪实际文本并查找不匹配项,或处理 ForeColorChanged 事件,但我认为在您的情况下最简单的方法是在您进行重置时“关闭”事件订阅。

例如,在您的 RunButton_Click 方法中:

private void RunButton_Click(object sender, EventArgs e)
{
AHReg.TextChanged -= AHReg_TextChanged;
resetControlColor(); //this function sets the text color to Black
AHReg.TextChanged += AHReg_TextChanged;
}

如果您需要在您的 resetControlColor() 函数中激活该事件,那么您需要从不同的角度来处理这个问题,但这是最简单的方法。

关于c# - 执行 RichTextBox 事件处理程序 "textChanged",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21786416/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com